一种:
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
又回来了,然后可以干点其他的事情。。。。。