首页 > 编程 > Java > 正文

java8时间api和mysql集成的坑

2019-11-08 03:07:24
字体:
来源:转载
供稿:网友

java8时间api和MySQL集成的坑

代码

Timestamp.valueOf(LocalDateTime.now)

现象是时间相差14个小时,想了下,相差14个小时应该是芝加哥时间

跟踪jdk源码,ZoneId

/** * A map of zone overrides to enable the short time-zone names to be used. * <p> * Use of short zone IDs has been dePRecated in {@code java.util.TimeZone}. * This map allows the IDs to continue to be used via the * {@link #of(String, Map)} factory method. * <p> * This map contains a mapping of the IDs that is in line with TZDB 2005r and * later, where 'EST', 'MST' and 'HST' map to IDs which do not include daylight * savings. * <p> * This maps as follows: * <ul> * <li>EST - -05:00</li> * <li>HST - -10:00</li> * <li>MST - -07:00</li> * <li>ACT - Australia/Darwin</li> * <li>AET - Australia/Sydney</li> * <li>AGT - America/Argentina/Buenos_Aires</li> * <li>ART - Africa/Cairo</li> * <li>AST - America/Anchorage</li> * <li>BET - America/Sao_Paulo</li> * <li>BST - Asia/Dhaka</li> * <li>CAT - Africa/Harare</li> * <li>CNT - America/St_Johns</li> * <li>CST - America/Chicago</li> * <li>CTT - Asia/Shanghai</li> * <li>EAT - Africa/Addis_Ababa</li> * <li>ECT - Europe/Paris</li> * <li>IET - America/Indiana/Indianapolis</li> * <li>IST - Asia/Kolkata</li> * <li>JST - Asia/Tokyo</li> * <li>MIT - Pacific/Apia</li> * <li>NET - Asia/Yerevan</li> * <li>NST - Pacific/Auckland</li> * <li>PLT - Asia/Karachi</li> * <li>PNT - America/Phoenix</li> * <li>PRT - America/Puerto_Rico</li> * <li>PST - America/Los_Angeles</li> * <li>SST - Pacific/Guadalcanal</li> * <li>VST - Asia/Ho_Chi_Minh</li> * </ul> * The map is unmodifiable. */ public static final Map<String, String> SHORT_IDS;

结果CST是芝加哥时间,然后去mysql中看了一下

mysql> show variables like "%time_zone%";+------------------+--------+| Variable_name | Value |+------------------+--------+| system_time_zone | CST || time_zone | SYSTEM |+------------------+--------+2 rows in set (0.00 sec)mysql> select curtime();+-----------+| curtime() |+-----------+| 20:14:19 |+-----------+1 row in set (0.00 sec)

坑了吧,这里CST是China Standard Time,最后用了SimpleDateFormat加ThreadLocal搞定的


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表