博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 日期操作,Date、Calendar 操作
阅读量:6705 次
发布时间:2019-06-25

本文共 4375 字,大约阅读时间需要 14 分钟。

hot3.png

java开发中避免不了日期相关操作,这里总结了一些常用方法~

直接上码:

package jse;import java.io.UnsupportedEncodingException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;/** * 常用日期操作 *  * @author puck * createDate 2015-07-30 22:54:38 */public class TestDate{	public static void main(String[] args) throws ParseException, UnsupportedEncodingException	{		Calendar cal = Calendar.getInstance();//		cal.add(Calendar.DAY_OF_MONTH, -48);		System.out.println(dateToString(cal));	}		/**	 * 日期格式化	 * @param date	 * @return	 */	public static String dateToString(Date date)	{//		SimpleDateFormat format = new SimpleDateFormat("y年MM月dd日 E HH时mm分ss秒", Locale.CHINA);//		SimpleDateFormat format = new SimpleDateFormat("y年M月d日 E H时m分s秒", Locale.CHINA);		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); // example		return sdf.format(date);	}		/**	 * 日期格式化	 * @param date	 * @return	 */	public static String dateToString(Calendar cal)	{		return dateToString(cal.getTime());	}	/**	 * dateString 转 Calendar	 * 	 * @param Date	 *            format:2015-06-16 date	 * @return Calendar	 * @throws ParseException	 */	public static Calendar dateStringToCalendar(String dateStr) throws ParseException	{//		Calendar cal = Calendar.getInstance();//		cal.clear();//		cal.set(Integer.parseInt(date.substring(0, 4)), Integer.parseInt(date.substring(5, 7)) - 1,//				Integer.parseInt(date.substring(8, 10)));//		return cal;				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		Date date = sdf.parse(dateStr);		Calendar cal = Calendar.getInstance();		cal.setTime(date);		return cal;	}	/**	 * dateString 转 Date	 * 	 * @param Date	 *            format:yyyy-MM-dd HH:mm:ss date	 * @return Calendar	 * @throws ParseException	 */	public static Date dateStringToDate(String date) throws ParseException	{		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		return sdf.parse(date);	}	/**	 * Date Convert to Calendar	 * 	 * @param date	 * @return	 */	public static Calendar dateToCalendar(Date date)	{		Calendar c1 = Calendar.getInstance();		c1.setTime(date);		return c1;	}	/**	 * Calendar Convert To Date	 * @param cal	 * @return	 */	public static Date CalendarToDate(Calendar cal)	{		return cal.getTime();	}	/**	 * 计算两个日期相差年月日	 * 	 * @param Date	 *            c1	 * @param Date	 *            c2	 * @return int[]{year, month, day}	 */	public int[] calculateDifferDay(Date d1, Date d2)	{		Calendar c1 = Calendar.getInstance();		c1.setTime(d1);		Calendar c2 = Calendar.getInstance();		c1.setTime(d2);		return calculateDifferDay(c1, c2);	}	/**	 * 计算两个日期相差年月日	 * 	 * @param Calendar	 *            c1	 * @param Calendar	 *            c2	 * @return int[]{year, month, day}	 */	public int[] calculateDifferDay(Calendar c1, Calendar c2)	{		int[] p1 = { c1.get(Calendar.YEAR), c1.get(Calendar.MONTH), c1.get(Calendar.DAY_OF_MONTH) };		int[] p2 = { c2.get(Calendar.YEAR), c2.get(Calendar.MONTH), c2.get(Calendar.DAY_OF_MONTH) };		System.out.println("p1[0]=" + p1[0] + " p1[1]=" + p1[1] + " p1[2]=" + p1[2]);		System.out.println("p2[0]=" + p2[0] + " p2[1]=" + p2[1] + " p2[2]=" + p2[2]);		int year = p2[0] - p1[0];		int month = (p2[0] * 12) + p2[1] - ((p1[0] * 12) + p1[1]);		int day = (int) ((c2.getTimeInMillis() - c1.getTimeInMillis()) / (24 * 60 * 60 * 1000));		return new int[] { year, month, day };	}	/**	 * 获取日期所在周的第一天	 * 	 * @param c	 * @return	 */	public static Calendar getLastDayOfWeek(Calendar c)	{//		SimpleDateFormat format2 = new SimpleDateFormat("y年M月d日 E H时m分s秒", Locale.CHINA);//		System.out.println("当前时间:" + format2.format(c.getTime()));		c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//		System.out.println("周一时间:" + format2.format(c.getTime()));		return c;	}	/**	 * 日期加减	 * @param c	 * @param day	 * @return	 */	public static Calendar addOrDecreaseDay(Calendar c, int day)	{		c.add(Calendar.DAY_OF_MONTH, day);		return c;	}	/**	 * 获取月最后一天	 * @param year	 * @param month	 * @return	 */	public static int getLastDayOfMonth(int year, int month)	{		Calendar c = Calendar.getInstance();		c.set(year, month - 1, 1);		return c.getActualMaximum(Calendar.DAY_OF_MONTH);	}		/**	 * 获取月最后一天	 * @param cal	 * @return	 */	public static int getLastDayOfMonth(Calendar cal)	{		return cal.getActualMaximum(Calendar.DAY_OF_MONTH);	}	}

欢迎指正、补充哈

转载于:https://my.oschina.net/u/588341/blog/485872

你可能感兴趣的文章
visual studio 2013使用技巧
查看>>
Sublime Text 相关
查看>>
深入理解css优先级
查看>>
Android MediaPlayer状态机
查看>>
Material Design Animation
查看>>
ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
查看>>
(C语言)memcpy函数原型的实现
查看>>
Theano2.1.1-基础知识之准备工作
查看>>
FreeBSd ports 安装软件
查看>>
DevExpress.Build
查看>>
ACCESS-如何多数据库查询(跨库查询)
查看>>
iOS:转载sqlite3
查看>>
java并发编程学习:用 Semaphore (信号量)控制并发资源
查看>>
HDU 2070 Fibbonacci Number
查看>>
Cocos2d-x 3.2 大富翁游戏项目开发-第五部分 单机游戏-级别选择ScrollView
查看>>
Win10系统菜单打不开问题的解决,难道是Win10的一个Bug ?
查看>>
怎么把控制台输入命令之后显示的东西保存到一个记事本中
查看>>
table完美css样式,table的基本样式,table样式
查看>>
spring-boot - demo
查看>>
matlab里plot画多幅图像、设置总标题、legend无边框
查看>>