Java Date toString 包含时区...为什么?

标签 java date vb6

我今天在 VB6 中编写了一些代码,它可以获取自 1970 年 1 月 1 日以来的毫秒数,这样我就可以将该值发送到 java 应用程序,该应用程序将解析该值,如 new Date(Long .parse(毫秒))。据我所知,日期(长)正在寻找的毫秒数是自 GMT 纪元以来的毫秒数。我运行的机器位于美国的 CDT 上。当我获取从毫秒解析的日期的 toString 值时,这是我得到的值:

Tue Aug 11 15:40:50 CDT 2015

CDT 是否只是因为本地计算机时区是 CDT?我只是觉得有点奇怪,Date 的构造函数会假设从 GMT 纪元以来的毫秒数派生的日期将隐式位于本地计算机时区,而不是(在本例中)偏移 -5 小时。

最佳答案

Is the CDT just there because the local machines timezone is CDT?

用于显示目的的时区基于默认时区。

日期中的毫秒是相对于纪元的,它没有自己的时区。

它是从格林尼治标准时间 1970 年 1 月 1 日 00:00 开始拍摄的,或者如果您更喜欢 CDT 1969 年 12 月 31 日 17:00 开始拍摄。

would implicitly be in the local machines timezone

本地时区的使用仅用于显示目的。使用另一个时区或序列化 Date 并将其发送到另一个时区的计算机,它将再次使用本地时区。

关于Java Date toString 包含时区...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951765/

相关文章:

php - 为什么PC和笔记本电脑的代码结果不同

vba - 用户定义类型 (UDT) 作为类模块 (VB6) 中公共(public) Sub 中的参数

mysql - vb6显示问题

vb6 - 使用 MSBuild 读取和编辑 .ini 文件

java - JDBC 更新语句非空

java - maven如何设置为不需要 `mvn`命令的目标?

java原始数组到JSONArray

java - 如何给 Java 程序打补丁?

android - java.text.ParseException : Unparseable date 异常

php - 获取时区 GMT 时间?