格式化日期时间(以gwt为单位)

时间:2016-05-19 22:31:10

标签: gwt timezone

我需要格式化日期并根据用户位置将其显示给用户。

我正在尝试使用以下代码格式化时间

DateTimeFormat.getFormat("h:mm a z").format(new Date(timeInMillis))

这是我得到的结果"下午5:18 UTC-4"对于纽约用户和" 2:18 PM UTC-7"为西雅图用户。我如何生成类似#34;美国东部时间下午5点18分的字符串"对于纽约用户和"下午2:18 PDT"对于西雅图用户?

注意:使用格式(新日期(时间),时区)的问题是如何根据用户区域设置创建时区对象? Timezone.createTimeZone(int)给出SimpleTimeZone实现,它将产生" UTC-4",为了生成" PDT",时区必须用Timezone.createTimeZone创建(timezoneJson:string )但问题是我们必须在编译时选择时区来创建输入时区json字符串。

提前致谢

1 个答案:

答案 0 :(得分:1)

您需要将TimeZone object传递给格式化程序:

format.format(new Date(), timeZone));

请注意,创建TimeZone的最佳方法是使用JSON字符串,该字符串包含过去对时区更改的信息。如果你的应用程序不处理过去的时间,那么这可能没有必要。