JAVA:gmt到本地时间的转换
我正在用java开发一个软件 我从服务器上得到一个GMT时间戳。 该软件可以在世界任何地方使用。 现在我想获取软件运行的本地时区,并将这个GMT时间转换为本地时间JAVA:gmt到本地时间的转换,java,timezone,Java,Timezone,我正在用java开发一个软件 我从服务器上得到一个GMT时间戳。 该软件可以在世界任何地方使用。 现在我想获取软件运行的本地时区,并将这个GMT时间转换为本地时间 请告诉我怎么做?看看乔达时间。它具有获取本地时区所需的所有与日期相关的功能: Calendar.getInstance().getTimeZone().getDisplayName() 对于转换: 假设您的时间戳是日期或编号: final DateFormat formatter = DateFormat.getDateTimeIns
请告诉我怎么做?看看乔达时间。它具有获取本地时区所需的所有与日期相关的功能: Calendar.getInstance().getTimeZone().getDisplayName() 对于转换:
假设您的
时间戳是日期
或编号
:
final DateFormat formatter = DateFormat.getDateTimeInstance();
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println(formatter.format(timestamp));
如果时间戳是作为字符串提供的,则首先必须对其进行解析。您将在中找到大量自定义格式的示例,一个内置格式的简单示例:
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));
假设服务器时间的格式为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();
一个简单的日历.getInstance().getTimeZone().getDisplayName()不会给你本地时区吗?