Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

Java中Date、LocalDateTime与Calendar易混淆点梳理

Date与时区有关

Date最好取系统时区,否则容易混淆

//Date now = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());  //取系统时区
Date thDate = Date.from(LocalDateTime.now().atZone(TimeZone.getTimeZone("GMT+8").toZoneId()).toInstant());  //与时区有关
System.out.println(thDate);
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+0"));  //与时区无关
calendar.setTime(thDate);
calendar.add(Calendar.HOUR, +1);
Date cnDate = calendar.getTime();
System.out.println(cnDate);

String thday = DateUtil.formatDateTime(thDate);
System.out.println(thday);

String cnday = DateUtil.formatDateTime(cnDate);
System.out.println(cnday);
public static String formatDateTime(Date date) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+7"));
    return sdf.format(date);
}
Fri Oct 09 16:57:58 CST 2020
Fri Oct 09 17:57:58 CST 2020
2020-10-09 15:57:58
2020-10-09 16:57:58

LocalDateTime日期加减

Date thDate = Date.from(LocalDateTime.now().atZone(TimeZone.getTimeZone("GMT+8").toZoneId()).toInstant());
System.out.println(thDate);
Date cnDate = DateUtil.addHours(thDate, 1);
System.out.println(cnDate);

String thday = DateUtil.formatDateTime(thDate);
System.out.println(thday);

String cnday = DateUtil.formatDateTime(cnDate);
System.out.println(cnday);
public static Date addHours(Date date, int hours) {
    LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
    return Date.from(dateTime.plusHours(hours).atZone(ZoneId.systemDefault()).toInstant());
}

public static Date addDays(Date date, int days) {
    LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
    return Date.from(dateTime.minusDays(-days).atZone(ZoneId.systemDefault()).toInstant());
}
Fri Oct 09 17:11:02 CST 2020
Fri Oct 09 18:11:02 CST 2020
2020-10-09 16:11:02
2020-10-09 17:11:02

Calendar判断周末与时区有关

Date date = new Date();
System.out.println(date);
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT-2"));
Date date2 = calendar.getTime();
System.out.println(date2);
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
    System.out.println("周末");
} else {
    System.out.println("非周末");
}
Fri Oct 09 16:56:10 CST 2020
Fri Oct 09 16:56:10 CST 2020
非周末

Calendar获取时间与时区无关

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));
Date cnDate = calendar.getTime();
System.out.println(cnDate);
calendar.setTimeZone(TimeZone.getTimeZone("GMT+7"));
Date thDate = calendar.getTime();
System.out.println(thDate);

String thday = DateUtil.formatDateTime(thDate);
System.out.println(thday);

String cnday = DateUtil.formatDateTime(cnDate);
System.out.println(cnday);
Fri Oct 09 17:22:58 CST 2020
Fri Oct 09 17:22:58 CST 2020
2020-10-09 16:22:58
2020-10-09 16:22:58
上一篇 Java动态修改Enum实例
下一篇 Java 8的中Consumer、Supplier、Predicate和Function