私はJavaでソフトウェアを開発しています。JAVA:gmtから現地時間への変換
GMTでサーバーからタイムスタンプを取得しました。 このソフトウェアは世界中どこでも使用できます。 ソフトウェアが稼動しているローカルタイムゾーンを取得し、このGMTタイムを現地時間に変換する必要があります。
どうすればいいですか?
私はJavaでソフトウェアを開発しています。JAVA:gmtから現地時間への変換
GMTでサーバーからタイムスタンプを取得しました。 このソフトウェアは世界中どこでも使用できます。 ソフトウェアが稼動しているローカルタイムゾーンを取得し、このGMTタイムを現地時間に変換する必要があります。
どうすればいいですか?
を必要とするすべての日付関連の関数があります。
Calendar.getInstanceを()はgetTimeZone()のgetDisplayName()変換のために
:。
をJoda-Timeをご覧ください。それは1つがあなたの地域のタイムゾーンを取得するには
あなたtimestamp
がDate
かNumber
のいずれかであると仮定すると:
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));
この作品形式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();
文句を言わないシンプルなカレンダーあなたは、
SimpleDateFormat
にビルトイン形式の簡単な例をカスタム形式の例をたくさん見つけることができます。 getInstance()。getTimeZone()。getDisplayName()ローカルタイムゾーンを指定しますか? –