たとえば、1973 年 7 月 1 日 15 時 23 分、アフリカ/マプトで、特定の Olson/tz データベースのタイムゾーンに時間があるとします。
で協定世界時 (UT) に、またはその逆に変換するにはどうすればよいnode.js
ですか? いくつかのライブラリをオンラインで見たことがありますが、ドキュメントが不明確です。完全なコード例を歓迎します。
たとえば、1973 年 7 月 1 日 15 時 23 分、アフリカ/マプトで、特定の Olson/tz データベースのタイムゾーンに時間があるとします。
で協定世界時 (UT) に、またはその逆に変換するにはどうすればよいnode.js
ですか? いくつかのライブラリをオンラインで見たことがありますが、ドキュメントが不明確です。完全なコード例を歓迎します。
moment.jsをmoment-timezoneとともに使用し、ISO8601 フォーマットを想定しています (指定しませんでした)。
node.js のロード
(Web ブラウザはこの手順を省略できます)
npm install moment-timezone
var moment = require('moment-timezone');
現地時間から UTC への変換
var m = moment.tz("1973-07-01T15:23", "Africa/Maputo");
var s = m.toISOString(); // "1973-07-01T13:23:00.000Z"
また
var m = moment.tz("1973-07-01T15:23", "Africa/Maputo");
var s = m.utc().format(); // "1973-07-01T13:23:00.000+00:00"
最初の形式はよりコンパクトで、結果を API 経由で送信するか、データベースに保存するだけの場合に最も簡単です。2 番目の形式は、関数の使用例ですutc
。これは、パラメータを に渡してformat
異なる形式の文字列を生成する場合、または 以外の関数を呼び出す場合に便利ですformat
。
UTC から現地時間への変換
var m = moment.utc("1973-07-01T13:23").tz("Africa/Maputo");
var s = m.format(); // "1973-07-01T15:23:00+02:00"
また
var m = moment("1973-07-01T13:23:00.000Z").tz("Africa/Maputo");
var s = m.format(); // "1973-07-01T15:23:00+02:00"
最初の形式では、このmoment.utc
関数を使用して、オフセット情報を含まない文字列を解析し、UTC として解釈できることを示しています。これはより明示的な形式です。
2 番目の形式は、オフセット情報 (または形式のいずれか) がある場合に、それが考慮されることを示しています。中間結果はローカルモードのモーメント オブジェクトですが、基になるタイムスタンプは依然として UTC ベースであるため、指定されたタイム ゾーンへの変換でも同じ出力が得られます。Z
+00:00