学习Java的Date、Calendar日期操作
程序员文章站
2022-04-26 13:14:55
...
本文介绍了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); } }
更多学习Java的Date、Calendar日期操作相关文章请关注PHP中文网!
推荐阅读
-
2.2多线程(java学习笔记)线程状态及线程操作的相关方法
-
Java中Calendar对于日期的控制详解--DAY_OF_MONTH, DAY_OF_YEAR, DATE 的区别
-
[ Java学习基础 ] String字符串的基本操作
-
为什么不建议使用Date,而是使用Java8新的时间和日期API?
-
Java基础学习笔记三 正则表达式和校验、Date、DateFormat、Calendar
-
Java13-day04【Integer、int和String的相转、自动装箱和拆箱、Date、SimpleDateFormat、Calendar、异常、try...catch、throws】
-
Java学习笔记十:Java的数组以及操作数组
-
java对日期时间的相关操作方法
-
Java开发人员必备的linux学习大全(用户管理,基本操作,mysql、jdk等开发软件的安装,图文详解)
-
Hadoop学习(7)-hive的安装和命令行使用和java操作