原文: https://howtodoinjava.com/java/date-time/java-date-examples/
学习创建新日期,获取当前日期,将日期解析为字符串或格式化Date对象,使用java.util.Date类。 这些用例是经常需要的,将它们放在一个地方将有助于节省我们许多人的时间。

Table of ContentsFormat Date to stringParse string to DateGet current dateGet current timeConvert Calendar to DateGet Date to CalendarCompare between two datesGet date parts (year, month, day of month)
将日期格式化为字符串
将日期格式化为字符串表示形式的示例。
SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");String date = sdf.format(new Date());System.out.println(date); //Prints 26/10/2015
有关详细的日期和时间模式,请参考SimpleDateFormat JavaDoc。 以下是您可以使用的最常见的模式字母的列表。
y = year (yy or yyyy)M = month (MM)d = day in month (dd)h = hour (0-12) (hh)H = hour (0-23) (HH)m = minute in hour (mm)s = seconds (ss)S = milliseconds (SSS)z = time zone text (e.g. Pacific Standard Time...)Z = time zone, time offset (e.g. -0800)
例如,
yyyy-MM-dd (2015-12-31)dd-MM-YYYY (31-10-2015)yyyy-MM-dd HH:mm:ss (2015-12-31 23:59:59)HH:mm:ss.SSS (23:59.59.999)yyyy-MM-dd HH:mm:ss.SSS (2015-12-31 23:59:59.999)yyyy-MM-dd HH:mm:ss.SSS Z (2015-12-31 23:59:59.999 +0100)
将字符串解析为日期
将字符串解析为日期对象的示例。
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");String dateInString = "15-10-2015 10:20:56";Date date = sdf.parse(dateInString);System.out.println(date); //Prints Tue Oct 15 10:20:56 SGT 2015
获取当前日期
在 Java 中获取当前日期的示例。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");Date date = new Date();System.out.println(dateFormat.format(date)); //2015/10/26 12:10:39
在 Java 8 中,可以使用LocalDate类。
LocalDate today = LocalDate.now();System.out.println("Today's Local date : " + today);
获取当前时间
在 Java 中获取当前时间的示例。
LocalTime time = LocalTime.now();System.out.println("local time now : " + time);
将日历转换为日期
Calendar calendar = Calendar.getInstance();Date date = calendar.getTime();
将日期转换为日历
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");String dateInString = "27-04-2016 10:22:56";Date date = sdf.parse(dateInString);Calendar calendar = Calendar.getInstance();calendar.setTime(date);
比较两个日期
比较两个日期实例的示例。
Date date1 = new Date();Date date2 = new Date();int comparison = date1.compareTo(date2);
日期之间的比较遵循Comparable接口的规则,这意味着compareTo()方法返回:
- 如果调用该方法的日期晚于作为参数给出的日期,则大于 0 的
int。 - 如果日期相等,则
int值为 0。 - 如果调用该方法的日期早于作为参数给出的日期,则
int值小于 0。
从 Java 8 开始,LocalDate类覆盖了equal方法,以提供日期相等性。
LocalDate today = LocalDate.now();LocalDate date1 = LocalDate.of(2015, 10, 26);if(date1.equals(today)){System.out.printf("Today %s and date1 %s are same date %n", today, date1);}
获取日期部分(年,月,日)
分别获取日期部分(例如年,月等)的示例。
不建议使用获取年,月,日,小时等的方法。 如果需要获取或设置年,月,日等,请改用java.util.Calendar。
Calendar calendar = new GregorianCalendar();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // Jan = 0, not 1int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);int weekOfMonth= calendar.get(Calendar.WEEK_OF_MONTH);int hour = calendar.get(Calendar.HOUR); // 12 hour clockint hourOfDay = calendar.get(Calendar.HOUR_OF_DAY); // 24 hour clockint minute = calendar.get(Calendar.MINUTE);int second = calendar.get(Calendar.SECOND);int millisecond= calendar.get(Calendar.MILLISECOND);
仅供参考,在 Java 8 中,您可以按以下方式获得不同的时间单位。
LocalDate today = LocalDate.now();
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
这些 Java Date示例就是这些。
学习愉快!
