当前位置:  开发笔记 > 编程语言 > 正文

Linux服务器显示UTC而不是EST,本地显示EST

如何解决《Linux服务器显示UTC而不是EST,本地显示EST》经验,为你挑选了1个好方法。

我无法弄清楚为什么下面代码的时区一直显示UTC而不是EST.在我的本地计算机上它显示EST,即使我在MST时间但在实际服务器上它仍然显示UTC.任何线索?

Mon Nov 9 2015 1:58:49 PM UTC


@JsonIgnore
    public String getDateCreatedFormatted() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(getDateCreated());
        calendar.setTimeZone(TimeZone.getTimeZone("EST"));

        SimpleDateFormat format = new SimpleDateFormat("EEE MMM d yyyy h:mm:ss a z");      

        return format.format(calendar.getTime());
    }

Jon Skeet.. 16

您已将日历设置为EST,但尚未设置时区SimpleDateFormat,这是用于格式化的时区.只需使用:

format.setTimeZone(TimeZone.getTimeZone("America/New_York"));

在格式化之前Date.Calendar根据它的外观,你根本不需要它:

@JsonIgnore
public String getDateCreatedFormatted() {
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM d yyyy h:mm:ss a z", Locale.US);
    format.setTimeZone(TimeZone.getTimeZone("America/New_York"));
    return format.format(getDateCreated());
}

另外,我强烈建议您使用上面的全时区ID,而不是像EST那样含糊不清的缩写.(有两个问题 - 首先,EST在不同的位置可能意味着不同的东西;其次,美国EST应该始终意味着东部标准时间,而我假设你想要使用东部时间格式,标准或日光取决于是否夏令时时间有效或无效.)



1> Jon Skeet..:

您已将日历设置为EST,但尚未设置时区SimpleDateFormat,这是用于格式化的时区.只需使用:

format.setTimeZone(TimeZone.getTimeZone("America/New_York"));

在格式化之前Date.Calendar根据它的外观,你根本不需要它:

@JsonIgnore
public String getDateCreatedFormatted() {
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM d yyyy h:mm:ss a z", Locale.US);
    format.setTimeZone(TimeZone.getTimeZone("America/New_York"));
    return format.format(getDateCreated());
}

另外,我强烈建议您使用上面的全时区ID,而不是像EST那样含糊不清的缩写.(有两个问题 - 首先,EST在不同的位置可能意味着不同的东西;其次,美国EST应该始终意味着东部标准时间,而我假设你想要使用东部时间格式,标准或日光取决于是否夏令时时间有效或无效.)


@MikeFlynn:如果"它需要以某种方式说EST"的原因是因为它在需求文档中,我会回过头来解释为什么这是一个坏主意.如果这是我,那么就必须有一个真正的,非常好的理由来引入如此大的混乱可能性.
@MikeFlynn:是的,您可以传入一个固定的时区,然后将格式更改为最后使用"EST".但我会非常强烈地**敦促你不要这样做.我已经知道很多人会对此感到非常困惑,期待"EST"意味着"东部时间"(即有时候真的是EDT).如果你向两个不同的人展示"2016年3月19日星期六上午10:00:00",他们可能会以不同的方式解释它们 - 如果它们是为了见面,那么其中一个可能会在另一个之前一小时到达.当然这不是一件好事.
@MikeFlynn:大概是标准时间(即冬天)的人说EST和夏令时(即夏天)说EDT ......
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有