2012-04-14 6 views
5

私はJavaでソフトウェアを開発しています。JAVA:gmtから現地時間への変換

GMTでサーバーからタイムスタンプを取得しました。 このソフトウェアは世界中どこでも使用できます。 ソフトウェアが稼動しているローカルタイムゾーンを取得し、このGMTタイムを現地時間に変換する必要があります。

どうすればいいですか?

+1

文句を言わないシンプルなカレンダーあなたは、SimpleDateFormatにビルトイン形式の簡単な例をカスタム形式の例をたくさん見つけることができます。 getInstance()。getTimeZone()。getDisplayName()ローカルタイムゾーンを指定しますか? –

答えて

4

を必要とするすべての日付関連の関数があります。

Calendar.getInstanceを()はgetTimeZone()のgetDisplayName()変換のために

:。

Date TimeZone conversion in java?

0

Joda-Timeをご覧ください。それは1つがあなたの地域のタイムゾーンを取得するには

4

あなたtimestampDateNumberのいずれかであると仮定すると:

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

タイムスタンプがStringとして指定されている場合は、まずそれを解析する必要があります。

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)); 
0

この作品形式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(); 
関連する問題