将来自已知时区的时间戳转换为系统的时区


dateFormatterLocal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormatterLocal.setTimeZone(TimeZone.getTimeZone("America/New York"));
for (int i = 0; i < list.length; i++) {
    timeStampArrayList.add(dateFormatterLocal.parse(list[i]));
}

我当前的代码没有将已知在UTC时区的时间戳转换为我的时区。

我也想知道如何获得系统的当前时区,而不必说"美国/纽约"。

预先感谢!

我不确定我也完全理解您的问题,但这是我为您回答的最佳努力。

我假设您的日期是UTC时区中的字符串,并且您将日期作为系统(或本地)时区。

要这样做,只需将字符串" UTC"添加到您的时间字符串中,然后将您的日期格式格式模式更改为" yyyy-mm-dd HH:MM:SS Z"。这里Z是RFC 822时区。您也可以使用z,即通用时区。

,您的代码将成为:

String timezoneOffset = " UTC";
dateFormatterLocal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");  
dateFormatterLocal.setTimeZone(TimeZone.getTimeZone("America/New York"));
for (int i = 0; i < list.length; i++) {
   timeStampArrayList.add(dateFormatterLocal.parse(list[i] + timezoneOffset ));
}

这应该将日期解析为从提供的时区字符串转换的格式区时区。


您可以这样做以获取当前时区的系统

TimeZone timeZone = Calendar.getInstance().getTimeZone();
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG));

为我打印New Zealand Standard Time - 这是当前的时区。

您也可以将TimeZone.LONG更改为TimeZone.SHORT以获取缩写版本,即我获得NZST


您还应该阅读此问题并回答有关显示日期

的答案

相关内容

  • 没有找到相关文章

最新更新