Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Date.toString()显示的时区是什么?_Java_Date_Timezone - Fatal编程技术网

Java Date.toString()显示的时区是什么?

Java Date.toString()显示的时区是什么?,java,date,timezone,Java,Date,Timezone,默认情况下,方法显示的时区是什么?由于Java在中存储给定的日期,并且不包含任何明确的时区,date.toString()只是显示主机的默认时区,还是?它使用TimeZone.getDefault()显示,反过来,它将默认为运行它的操作系统(即主机)的时区。所以在实践中,它们将是一样的 请注意,Java日期并不是真正的日期!它是一个时间上的瞬间,表示为自新纪元开始以来的毫秒偏移量。它仍然包含引用年、月等的方法,但这些方法都已弃用。绝不能将Date对象当作日期来使用 使用日历(尽管这可能比日期)或

默认情况下,方法显示的时区是什么?由于Java在中存储给定的日期,并且不包含任何明确的时区,
date.toString()
只是显示主机的默认时区,还是?

它使用
TimeZone.getDefault()
显示,反过来,它将默认为运行它的操作系统(即主机)的时区。所以在实践中,它们将是一样的

请注意,Java日期并不是真正的日期!它是一个时间上的瞬间,表示为自新纪元开始以来的毫秒偏移量。它仍然包含引用年、月等的方法,但这些方法都已弃用。绝不能将
Date
对象当作日期来使用

使用
日历
(尽管这可能比
日期
)或像JODA这样的像样的库更坏

它是否显示默认时区 为了主人,或者 时区。getDefault()


后者(与前者相同,除非在某个地方显式设置)。然而,这是从源代码中收集到的信息,因此应该将其视为一个实现细节。如果您想要特定的可重复行为,您应该自己实现。

是否有可能给定一个东部标准时间(EST)的主机时区,该日期。toString()有时会显示时区EST,但其他时间会显示东部夏时制(EDT)?我在
ToStringBuilder.reflectionString(Object)
中观察到了这种奇怪的行为,根据,它使用
Date.toString()
来显示
Date
对象。我认为您的系统可能会使用适合您的区域设置的任何夏令时设置(您的系统管理员会知道)。所以在DST期间,我希望默认时区是EDT(假设EDT是EST的夏令时版本)。我的问题不够清楚。给定一个包含多个
Date
对象的对象,
ToStringBuilder.ReflectionString(对象)
显示一些带有EST时区的日期和其他带有EDT的日期。它不应该在主机时区中显示它们吗?在本例中为EST?@Derek-您使用的是一个时区,根据日期将日期显示为EST或EDT。。。不是说“现在”是否在夏令时。“它不应该把它们都显示在东道主时区吗”-这对大多数人来说真的很困惑。(“那天我早上9点上班,但那台愚蠢的电脑说是上午10点。”)斯蒂芬C,我同意你的说法,这个时区的输出很奇怪,但罪魁祸首不是我们的代码。要么是JAX-WS引用实现(jaxws rt)对将从输入SOAP消息反序列化的日期转换到哪个时区感到困惑,要么是Apache Commons Lang 2.4 toString Builder.ReflectionString(对象)或Date.toString()在不正确的时区中显示多个“时间内的实例”。我希望日期显示为时区EST,操作系统和JVM的时区,而不是EDT。