Googleドキュメントの欠陥
その特定の番号をグーグルで検索すると、このようなStackOverflow.comの質問などの場所につながりました。これらのページから、GoogleDirectionsAPIのドキュメントに欠陥があると結論付けることができます。
あなたと他の人は、ドキュメントが1343605500=2012年7月30日午前9時45分にニューヨークで言っていると報告しています。しかし、それは正しくありません。月の日と時間の両方が間違っています。
1343605500
1970年の初めからの秒UTC/GMT:
- ニューヨークでは
2012-07-29T19:45:00.000-04:00
- UTC/GMTでは
2012-07-29T23:45:00.000Z
数値から日時を取得する
他の回答が述べているように、明らかにGoogleは1970年の初めのUnixエポックからUTC / GMT(タイムゾーンオフセットなし)で秒数を渡しています。
java.util.Date / Calendarクラスを使用する代わりに、サードパーティのオープンソースのJoda-Timeライブラリを使用できます。
これは、テキストをタイムゾーン付きの日時に解析する方法を示すソースコードの例です。
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;
// Starting data.
String string = "1343605500";
String timeZoneName = "America/New_York";
// Convert string of seconds to number of milliseconds.
long millis = Long.parseLong( string ) * 1000 ; //
// Specify time zone rather than rely on default.
DateTimeZone timeZone = DateTimeZone.forID( timeZoneName );
// Instantiate DateTime object.
DateTime dateTime = new DateTime( millis, timeZone );
System.out.println( "dateTime: " + dateTime );
System.out.println( "dateTime in UTC/GMT: " + dateTime.toDateTime( DateTimeZone.UTC ) );
実行時…</p>
dateTime: 2012-07-29T19:45:00.000-04:00
dateTime in UTC/GMT: 2012-07-29T23:45:00.000Z
エポックからのカウントを使用する場合は、次の点に注意する必要があります。
- どのエポック(Unix時間はいくつかの可能性の1つにすぎません)
- カウントの精度(秒、ミリ秒、ナノ秒)