java 判断是否夏令时_Java日期夏令时的问题

在开发中遇到92年之前新加坡夏令时的问题,亚洲每个国家在不同年份都实行过夏令时,而且每个国家的夏令时实行年份应该被写到jdk里了。

可以看如下示例:

public static void main(String[] args) throws ParseException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

sdf.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));

String dateStr = "1993-06-06 22:50:35";

Date date = sdf.parse(dateStr);

System.out.println("date ===="+ date);

String dateStr92 = "1991-09-14 22:00:00";

Date date92 = sdf.parse(dateStr92);

System.out.println("date92==="+date92);

}

输出结果:

date ====Sun Jun 06 22:50:35 CST 1993

date92===Sat Sep 14 23:00:00 CDT 1991

可以看出第二个日期输出的结果比预期要快一个小时。

解决方式:

时间类型采用把时间戳 自动转换成 字符串类型来进行传输, 然后接收方用如下方式进行转换:

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

private Date date;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值