JAVA:GMT到本地时间的转换



我正在用java开发一个软件。

我从服务器获得格林威治标准时间的时间戳。该软件可以在世界任何地方使用。现在我想获取运行软件的本地时区,并将此 GMT 时间转换为本地时间。

请告诉我该怎么做?

要获取您的本地时区:

Calendar.getInstance().getTimeZone().getDisplayName()

对于转换:

Java 中的日期时区转换?

假设您的timestampDateNumber

final DateFormat formatter = DateFormat.getDateTimeInstance();
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println(formatter.format(timestamp));

如果您的时间戳是作为String给出的,您首先必须解析它。您会在 SimpleDateFormat 中找到大量自定义格式的示例,这是一个具有内置格式的简单示例:

final DateFormat formatter = DateFormat.getDateTimeInstance();
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
final Date timezone = formatter.parse("2012-04-14 14:23:34");
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println(formatter.format(timezone));

看看Joda-Time。它具有所需的所有日期相关功能

假设服务器时间的格式yyyy/MM/dd HH:mm:ss.SSS这样工作:

String serverTime = "2017/12/06 21:04:07.406"; // GMT
ZonedDateTime gmtTime = LocalDateTime.parse(serverTime, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS")).atZone(ZoneId.of("GMT"));
LocalDateTime localTime = gmtTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime();

相关内容

  • 没有找到相关文章

最新更新