Java SimpleDateFormat:错误一小时
我不需要整个故事来澄清我的问题,所以我只是展示代码(这只是一个例子)。 为什么我的结果有所不同?
码
long millis = 2305293L; System.out.println( millis + "ms = " + (millis / 1000) + "s = " + (millis / 1000 / 60) + "m"); System.out.println( new SimpleDateFormat("HH:mm:ss"). format( new Date(millis) ) );
产量
2305293ms = 2305s = 38m 01:38:25
如果你在伦敦或巴黎,时区是1970年1月1日GMT + 1。
出于@ARC在评论中解释的原因,英国从1968年2月18日到1971年10月31日使用GMT + 1或UTC + 1
我可以在没有任何时区干扰的情况下进行长时间的转换吗?
将TimeZone设置为GMT。
long millis = 2305293L; SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(sdf.format(new Date(millis)));
版画
00:38:25.293
尝试这个 :
System.out.println(new java.util.Date (0));
你会看到它从01:00:00开始,因此相差一小时。
- 使用JSoup登录Linkedin
- GSON:使用ReflectiveTypeAdapterFactory.Adapter序列化/反序列化具有已注册类型层次结构适配器的类的对象
- 如何运行jar文件格式C#代码
- Hadoop:java.lang.ClassCastException:org.apache.hadoop.io.LongWritable无法强制转换为org.apache.hadoop.io.Text
- Spring Batch:org.springframework.batch.item.ReaderNotOpenException:Reader必须先打开才能读取
- openCV:创建一个特征匹配,输出数组的意思,java
- 在没有SPnego的情况下访问kerberos可以保护WebHDFS
- 字符串a ==字符串b 的规则
- -Xdebug标志开销有多大?