java mongodb 日期类型转换,java中Date类型到MongoDB日期转换问题,2018-03-01T16:00:00.000Z,少8个小时问题,应该是3月2号才对...

一种:

String dt = "2018年3月2日";

SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日");

//sd.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));

Date time = sd.parse(dt);

steel.setTime(time);//时间

然后将对象存到mongo里面它的日期会显示为:2018-03-01T16:00:00.000Z

为啥感觉少了一天,其实是少8个小时,因为:

联想到我们当前的时区是+8区  而16+8正好也是第二天0点,估计这000Z这货多半是和时区相关的。

本地时间"GMT+8",修正GMT,然后将代码中//里面的注释的代码打开,在GMT+8时区下自动加8个小时。

在运行一下:2018-03-02T00:00:00.000Z

这样就修正过来了

另一种:

String date = "2018-03-01T16:00:00.000Z"; 转换成data类型,

String date = "2018-03-01T16:00:00.000Z";

date = date.replace("Z", " UTC");//注意是空格+UTC

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");//注意格式化的表达式

Date d = format.parse(date);

System.out.print(d);

UTC 通用标准时,以z来标识。将z修改为UTC 。

运行下:Thu Mar 02 00:00:00 CST 2018

又回来了,然后可以干点其他的事情。。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值