Date和Calendar
// Datepublic class DateDemo{ public static void main(String[] args) { // 获取当前时间: Date date = new Date(); System.out.println(date.getYear() + 1900); System.out.println(date.getMonth() + 1); System.out.println(date.getDate()); // 转换为String: System.out.println(date.toString()); // 转换为GMT时区: System.out.println(date.toGMTString()); // 转换为本地时区: System.out.println(date.toLocaleString()); }}// Calendarpublic class DateDemo { public static void main(String[] args) { // 获取当前时间: Calendar c = Calendar.getInstance(); int y = c.get(Calendar.YEAR); // 年 int m = 1 + c.get(Calendar.MONTH); // 月 int d = c.get(Calendar.DAY_OF_MONTH); // 日 int w = c.get(Calendar.DAY_OF_WEEK); // 星期几 int hh = c.get(Calendar.HOUR_OF_DAY); // 时 int mm = c.get(Calendar.MINUTE); // 分 int ss = c.get(Calendar.SECOND); // 秒 int ms = c.get(Calendar.MILLISECOND); // 毫秒 System.out.println(y + "-" + m + "-" + d + " " + w + " " + hh + ":" + mm + ":" + ss + "." + ms); }}
LocalDateTime
public class DateDemo { public static void main(String[] args) { LocalDate d = LocalDate.now(); // 当前日期 LocalTime t = LocalTime.now(); // 当前时间 LocalDateTime dt = LocalDateTime.now(); // 当前日期和时间 System.out.println(d); // 严格按照ISO 8601格式打印 System.out.println(t); // 严格按照ISO 8601格式打印 System.out.println(dt); // 严格按照ISO 8601格式打印 }}
ZonedDateTime
// LocalDateTime总是表示本地日期和时间,要表示一个带时区的日期和时间,我们就需要ZonedDateTime。public class DateDemo { public static void main(String[] args) { ZonedDateTime zbj = ZonedDateTime.now(); // 默认时区 ZonedDateTime zny = ZonedDateTime.now(ZoneId.of("America/New_York")); // 用指定时区获取当前时间 System.out.println(zbj); System.out.println(zny); }}
DateTimeFormatter
public class Main { public static void main(String[] args) { ZonedDateTime zdt = ZonedDateTime.now(); var formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm ZZZZ"); System.out.println(formatter.format(zdt)); var zhFormatter = DateTimeFormatter.ofPattern("yyyy MMM dd EE HH:mm", Locale.CHINA); System.out.println(zhFormatter.format(zdt)); var usFormatter = DateTimeFormatter.ofPattern("E, MMMM/dd/yyyy HH:mm", Locale.US); System.out.println(usFormatter.format(zdt)); }}