Java 日期 – 解析,格式和转换

Java 日期 – 解析,格式和转换

原文: https://howtodoinjava.com/java/date-time/java-date-examples/

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

java date

Table of Contents

Format Date to string
Parse string to Date
Get current date
Get current time
Convert Calendar to Date
Get Date to Calendar
Compare between two dates
Get 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()方法返回:

  1. 如果调用该方法的日期晚于作为参数给出的日期,则大于 0 的int
  2. 如果日期相等,则int值为 0。
  3. 如果调用该方法的日期早于作为参数给出的日期,则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 1
int 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 clock
int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY); // 24 hour clock
int 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示例就是这些。

学习愉快!