Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java中经常使用的日期格式化(全)「建议收藏」

java中经常使用的日期格式化(全)「建议收藏」

作者头像
全栈程序员站长
发布于 2022-07-10 03:30:30
发布于 2022-07-10 03:30:30
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 * 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss
 * 
 * @author Arthur(user_006)
 * @version 1.0.0 2010/04/24 14:00(星期六)
 */
public class TimerUtil {

	/**
	 * 获取当前的日期 , 默认格式
	 * 
	 * @return 当前的日期
	 */
	public synchronized static Date getCurrentCalendar() {

		Calendar calendar = Calendar.getInstance();
		return calendar.getTime();
	}

	/**
	 * 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24
	 * 
	 * @return
	 */
	public synchronized static String getCurrentDate() {

		Calendar calendar = Calendar.getInstance();

		StringBuffer sb = new StringBuffer();

		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));
		return sb.toString();
	}

	/**
	 * 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD
	 * 
	 * @param date
	 *            日期的字符串形式
	 * 
	 * @return Data类型的日期
	 */
	public synchronized static Date convertToDate(String date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-DD");

		try {

			return format.parse(date);

		} catch (ParseException e) {

			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 把日期转换为指定的格式
	 * 
	 * @param date
	 *            要转换的日期
	 * @param pattern
	 *            转换的格式
	 * @return
	 */
	public synchronized static Date format(Date date, String pattern) {

		if (pattern != null && pattern.trim().length() > 0) {

			DateFormat format = new SimpleDateFormat(pattern);

			String stringDate = format.format(date);

			return TimerUtil.convertToDate(stringDate);
		}
		return null;
	}

	/**
	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
	 * 
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToString(Date date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return format.format(date);
	}
	
	/**
	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
	 * 
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToStrShort(Date date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		return format.format(date);
	}

	/**
	 * 将日期转换为字符串 , 格式yyyyMMddHHmmss
	 * 
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToString2(Date date) {
		DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		return format.format(date);
	}

	
	/**
	 * 将日期转换为指定格式的字符串
	 * 
	 * @param date
	 *            要转换的日期
	 * @param formatText
	 *            转换的格式
	 * @return
	 */
	public synchronized static String convertToString(Date date,
			String formatText) {

		DateFormat format = new SimpleDateFormat(formatText);

		Calendar calendar = Calendar.getInstance();

		StringBuffer sb = new StringBuffer();

		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));

		return format.format(date);
	}

	/**
	 * 获取本周一的日期
	 * 
	 * @return
	 */
	public synchronized static Date getMondayOFWeek() {

		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一開始,若须要依据系统时区自己主动获取,则採用下边的方式

		return calendar.getTime();
	}

	/**
	 * 获取本周日日期
	 * 
	 * @return
	 */
	public synchronized static Date getCurrentWeekday() {

		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 * 
	 * @return
	 */
	public synchronized static Date getPreviousWeekday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 * 
	 * @return
	 */
	public synchronized static Date getPreviousMonday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 * 
	 * @return
	 */
	public synchronized static Date getNextWeekday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 * 
	 * @return
	 */
	public synchronized static Date getNextMonday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取当前日期与本周周日之间相差的天数
	 * 
	 * @return
	 */
	public synchronized static int getCurrentPlus() {

		Calendar calendar = Calendar.getInstance();
		int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1
		return 7 - days;
	}

	public synchronized static int getCurrentYear() {

		Calendar calendar = Calendar.getInstance();
		return calendar.get(Calendar.YEAR);
	}

	/**
	 * 返回指定日期的当月第一天
	 * 
	 * @param date
	 * @return
	 */
	@SuppressWarnings("static-access")
	public synchronized static Date getFirstDayInMonth(Date date) {

		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(calendar.DATE, 1);
		return calendar.getTime();
	}

	/**
	 * 返回指定日期的当月最后一天
	 * 
	 * @param date
	 * @return
	 */
	@SuppressWarnings("static-access")
	public synchronized static Date getLastDayInMonth(Date date) {

		Calendar calendar = Calendar.getInstance();

		calendar.setTime(date);
		calendar.add(calendar.MONTH, 1);
		calendar.set(calendar.DATE, 1);
		calendar.add(calendar.DATE, -1);

		return calendar.getTime();
	}

	/*
	 * 计算两个日期之间的天数
	 */
	public static int getDaysBetween(Calendar d1, Calendar d2) {
		if (d1.after(d2)) {
			java.util.Calendar swap = d1;
			d1 = d2;
			d2 = swap;
		}
		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
		int y2 = d2.get(Calendar.YEAR);
		if (d1.get(Calendar.YEAR) != y2) {
			d1 = (Calendar) d1.clone();
			do {
				days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数
				d1.add(Calendar.YEAR, 1);
			} while (d1.get(Calendar.YEAR) != y2);
		}
		return days;
	}
	/*
	 * 计算两个日期之间的时间
	 */
	public static String getGapTime(Date createTime) {
		// TODO Auto-generated method stub
		Calendar d2 = Calendar.getInstance();
		Calendar d1 = Calendar.getInstance();
		d1.setTime(createTime);
		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
		if (days < 1) {
			int hour = d2.get(Calendar.HOUR_OF_DAY)
					- d1.get(Calendar.HOUR_OF_DAY);
			if (hour < 1) {
				int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);
				if (munites == 0) {
					return "刚刚";
				} else {
					return munites + "分钟前";
				}
			} else {
				return hour + "小时前";
			}

		} else {
			return days + "天前";
		}
	}
	
	//加天数
	public static String addDays(int day){
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DAY_OF_MONTH, day);
		StringBuffer sb = new StringBuffer();
		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));
		return sb.toString();
	}
	
	//加年份
	public static String addYears(String now, int year) throws ParseException{
		  Calendar fromCal=Calendar.getInstance();
		 
		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
	   Date date=dateFormat.parse(now);
	   fromCal.setTime(date);
	   fromCal.add(Calendar.YEAR, year);
	   
	   return dateFormat.format(fromCal.getTime());
	 }
	
	//加天数(特定时间)
	public static String addDate(String now, int day) throws ParseException{
		  Calendar fromCal=Calendar.getInstance();
		 
		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
	   Date date=dateFormat.parse(now);
	   fromCal.setTime(date);
	   fromCal.add(Calendar.DATE, day);
	   
	   return dateFormat.format(fromCal.getTime());
	 }

	/**
	 * 格多少时间
	 * @throws ParseException 
	 */

	@SuppressWarnings("deprecation")
	public static void main(String[] args) throws ParseException {
		System.out.println(TimerUtil.addYears("2008-12-01",7));
	}
		/*public static void main(String[] args) {
			   String createDate = "2008-12-01";
			   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
			   try {
			    Date date = sdf.parse(createDate);
			    Calendar cl = Calendar.getInstance();
			    cl.setTime(date);
			    cl.add(Calendar.DATE,31);
			    String temp = "";
			    temp = sdf.format(cl.getTime());
			    System.out.println(temp);
			   } catch (ParseException e) {
			    // TODO Auto-generated catch block
			    e.printStackTrace();
			   }
			}*/
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115600.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java Date 和 Calendar 实例
当前日期:  2012-03-07 2012-03-07 12:30:11 2012-3-7 12:30:11.101 计算周:  -3 3/5/12 12:30 PM 3/10/12 12:30 PM 3/12/12 12:30 PM 3/3/12 12:30 PM 计算月:  2012-03-01 2012-03-31 2012-02-01 2012-02-29 2012-04-01 2012-04-30 计算年:  2012-01-01 2012-12-31 2011-01-01 2011-12-31 2013-01-01 2013-12-31 366 in 2012 计算季度:  2012-3-7 in [ 2012-1 : 2012-3 ] 31 in [ 2012-3-7 ] true 日期格式转换与计算:  Wed Jun 20 00:00:00 CST 2012 Wednesday 2012-06-02 -> 2012-06-12间隔天数:10
阳光岛主
2019/02/19
3.1K0
Java常见日期格式及日期的计算工具类
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List;
一头小山猪
2020/06/15
4.3K0
Java日期格式化
文章目录 1. 日期格式化 1.1. 前言 1.2. Date 1.2.1. 构造方法 1.2.2. 常用的方法 1.2.3. 实例 1.3. SimpleDateFormat 1.3.1. 构造方法 1.3.2. 常用的方法 1.3.3. 常用的日期格式化的模板 1.3.4. 实例 1.4. Calendar 1.4.1. 创建对象 1.4.2. 常用方法 1.4.3. 实例 日期格式化 前言 更多文章请看本人博客https://chenjiabing666.github.io/ 版权所有,如需转
爱撒谎的男孩
2019/12/31
2.7K0
calendar类常用方法_设计一个日期类date
Calendar类的常量字段是非常重要的参数,在set()、add()、get()方法中都会用到。
全栈程序员站长
2022/11/09
6620
java小工具util系列1:日期和字符串转换工具
https://blog.csdn.net/a924382407/article/details/121955349
刘大猫
2024/11/28
1030
Calendar类_java calendar
Calendar是java util包下的一个工具类,提供了很方便的不同日期格式的处理。啥也不说了,直接撸代码:
全栈程序员站长
2022/11/09
9870
java 日期格式化工具类
六月的雨在Tencent
2024/03/28
900
日期格式转换
没有人见过风的模样,每当树枝摇曳,水波涟漪或浮云飘过,我们才知道风一直都在从未离开!
栖西
2023/10/17
2870
日期格式转换
Java获取时间/格式化日期代码总结
我们在Java开发过程中,少不了与时间打交道,比如根据两个日期得出相差的时分秒,时间加减,时间累加,前5分钟,前一个月,前一年,等等...所以我从网上搜集一些常用的时间/日期格式化代码,以飨读者。
浩Coding
2019/07/03
4.2K0
Java实用工具类二:时间格式转换工具
此文仅对自己工作中用到的类进行总结,方便以后的使用。 类一: package com.cn.hnust.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtil { /** * 获取起止日期 * @param sdf 需要显示的日期格式 * @param date 需要参照的日期 *
芈亓
2022/06/17
1.3K0
Java对Mysql数据库时间格式处理
博主在做一个列表的时候从MongoDB中查出来的数据包含有时间格式,在MongoDB数据库中的存放形式为2017-10-24 05:18:54.000Z,而对于使用Java查询是String接受的值为Tue Oct 24 13:18:54 CST 2017。
青衫染红尘
2021/01/19
4.7K0
日历时间格式Date与Calender
一、Date 1.1.概述 获取当前系统时间 大部分构造方法已经过时 构造方法 Date(); 创建一个Date,对应当前时间,精度在毫秒值 Date(long date); 根据时间戳毫秒数,创建对应的Date对象,时间戳是从1970-01-01 00:00:00 GMT tips: 中国采用的东八区时间 1970-01-01 08:00:00 常用方法: long getTime(); 通过Date类对象获取对应当前时间的毫秒数 System.currentTi
2020/10/23
1.1K0
时间工具类
import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.*; /** * <p>时间工具类</p> * * @author : LiYu * @date : 2020-10-23 15:22 **/ public class TimeUtils { /*
jaychou
2022/12/26
1.3K0
java calendar 设置小时_Java Calendar类的时间操作[通俗易懂]
Java Calendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单,演示了获取时间,日期时间的累加和累减,以及比较。
全栈程序员站长
2022/08/12
1.6K0
java calendar 设置小时_Java Calendar类的时间操作[通俗易懂]
一步一步教你使用Java Calendar类进行日期计算
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点之Calendar类,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/07/29
1050
一步一步教你使用Java Calendar类进行日期计算
JAVA 常用日期工具类:DateUtil的基本常见方法
在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,总之日期的使用多种多样,但万变不离其宗,今天我就整理了部分常见的java对Date的操作方法,供大家使用。
一诺千金
2020/04/30
13.8K0
Java 相关时间工具类
package com.cavytech.wear2.util; import android.text.TextUtils; import android.text.format.Time; import android.util.Log; import com.cavytech.wear2.entity.BandSleepStepBean; import com.cavytech.wear2.entity.GetSleepBean; import java.text.DateFormat;
先知先觉
2019/01/21
1.5K0
(32) 剖析日期和时间 / 计算机程序的思维逻辑
本节和下节,我们讨论在Java中如何进行日期和时间相关的操作。 日期和时间是一个比较复杂的概念,Java API中对它的支持不是特别好,有一个第三方的类库反而特别受欢迎,这个类库是Joda-Time,Java 1.8受Joda-Time影响,重新设计了日期和时间API,新增了一个包java.time。 虽然之前的设计有一些不足,但Java API依然是被大量使用的,本节介绍Java 1.8之前API中对日期和时间的支持,下节介绍Joda-Time,Java 1.8中的新API与Joda-Time比较类似,暂
swiftma
2018/01/31
2K0
实战:求年月日时间前后遇到的坑和解决方式
这周接到一个时间转换任务需要处理,本来没什么问题,后来完成后发现时间有偏差,又重写了一遍代码,感觉很有记录必要性,希望看过的小伙伴可以避坑。照例,先说结论。
你可以叫我老白
2023/06/19
3490
java实用类(四)-Date 和 Calendar
创建日历类对象,不是new出来的,而是通过日历类自带的静态方法getInstance,获取;
化羽羽
2022/10/28
4600
相关推荐
Java Date 和 Calendar 实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验