Globalize は、次期バージョン 1.3 で IANA タイムゾーンをサポートする予定です!
npm install globalize@1.3.0-alpha.0 cldr-data iana-tz-data
それで
var Globalize = require( "globalize" );
Globalize.load( require( "cldr-data" ).entireSupplemental() );
Globalize.load( require( "cldr-data" ).entireMainFor( "en" ) );
Globalize.loadIANATimezone( require( "iana-tz-data" ) );
Globalize( "en" ).formatDate(new Date(), {datetime: "short", timeZone: "America/Los_Angeles"});
// > '3/19/17, 3:19 PM'
Globalize( "en" ).formatDate(new Date(), {datetime: "short", timeZone: "America/New_York"});
// > '3/19/17, 6:19 PM'
Globalize( "en" ).formatDate(new Date(), {datetime: "short", timeZone: "America/Sao_Paulo"});
// > '3/19/17, 7:19 PM'
Globalize( "en" ).formatDate(new Date(), {datetime: "short", timeZone: "Europe/Berlin"});
// > '3/19/17, 11:19 PM'
Globalize( "en" ).formatDate(new Date(), {datetime: "full", timeZone: "America/Los_Angeles"});
// > 'Sunday, March 19, 2017 at 3:19:22 PM Pacific Daylight Time'
Globalize( "en" ).formatDate(new Date(), {datetime: "full", timeZone: "America/New_York"});
// > 'Sunday, March 19, 2017 at 6:19:22 PM Eastern Daylight Time'
Globalize( "en" ).formatDate(new Date(), {datetime: "full", timeZone: "America/Sao_Paulo"});
// > 'Sunday, March 19, 2017 at 7:19:22 PM Brasilia Standard Time'
Globalize( "en" ).formatDate(new Date(), {datetime: "full", timeZone: "Europe/Berlin"});
// > 'Sunday, March 19, 2017 at 11:19:53 PM Central European Standard Time'
PS: 特定の IANA タイムゾーンでの日付文字列の解析もサポートしていることに注意してください。
詳細はこちらhttps://github.com/globalizejs/globalize/pull/701#issuecomment-287652673
古い答え:
日付操作に moment.js を使用し、タイムゾーン部分なしで日付をフォーマットするために Globalize を使用できますか。つまり、{datetime: "medium"}
[1] の 2 番目の例です。それはあなたにとって実現可能ですか?または、それに加えて moment.js を使用してタイムゾーン名を出力できますか?
1: 別の/カスタム パターンが必要な場合は、 を使用できることに注意してください{skeleton: <pattern>}
。
適切な答え
グローバル化のタイムゾーン サポートは、ネイティブの JavaScript Date によって提供されるものに限定されます。そのタイムゾーン サポートは、ユーザーのローカル タイムゾーン オフセットの取得に限定されます。つまり、異なるタイムゾーン名またはタイムゾーン オフセットで日付を設定することはできません。したがって、ユーザーのローカル タイムゾーンのフォーマットのみが許可されます (任意のタイムゾーンではありません)。したがって、日付と時刻の書式設定には Globalize が役立つと思いますが、タイムゾーン部分には役立ちません。Globalize タイムゾーンのサポートについて詳しく知りたい場合は、https://github.com/jquery/globalize/pull/202#issuecomment-33020199で詳細を確認してください。
Globalize を使用して日付をフォーマットすると、CLDR 準拠のフォーマット (および最新のロケール データ) が得られ、実行時のサポートが得られます: 小さな最終ファイル サイズ (ページの読み込みを高速化するため) とプリコンパイル済みフォーマッター (クライアントでの実行を高速化するため) ) (詳細)。他にご不明な点がございましたら、お気軽にお問い合わせください。