我需要格式化日期并根据用户位置显示给用户。
我正在尝试使用以下代码格式化时间
DateTimeFormat.getFormat("h:mm a z").format(new Date(timeInMillis))
这是我为纽约用户获得"下午 5:18 UTC-4"和西雅图用户获得"下午 2:18 UTC-7"的结果。如何为纽约用户生成"美国东部标准时间下午 5:18"和西雅图用户"下午 2:18 PDT"等字符串?
注意:使用格式(新日期(时间),时区)的问题是如何根据用户语言环境创建时区对象?Timezone.createTimeZone(int) 给出了 SimpleTimeZone 实现,它将生成"UTC-4",为了生成"PDT",必须使用 Timezone.createTimeZone(timezoneJson: string) 创建时区,但问题是我们必须在编译时选择时区来创建输入时区 json 字符串。
提前致谢
您需要将时区对象传递给格式化程序:
format.format(new Date(), timeZone));
请注意,创建时区的最佳方式是从包含过去时区更改信息的 JSON 字符串。如果您的应用程序不处理过去的时间,那么这可能不是必需的。