0

たとえば、1973 年 7 月 1 日 15 時 23 分、アフリカ/マプトで、特定の Olson/tz データベースのタイムゾーンに時間があるとします。

で協定世界時 (UT) に、またはその逆に変換するにはどうすればよいnode.jsですか? いくつかのライブラリをオンラインで見たことがありますが、ドキュメントが不明確です。完全なコード例を歓迎します。

4

1 に答える 1

1

moment.jsmoment-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

于 2015-11-15T19:03:01.423 に答える