2017-09-08 11 views
1

私はWindows 10 Professionalを使用しており、タイムゾーンと地域の設定はブリスベン/オーストラリア(UTC + 10:00)に設定されています。さらに、私は構築しているアプリケーションのために私のシステム上でNode.jsを実行しています。Node.jsはタイムゾーンを取得し、どのようにグローバルに設定できますか?

私はNode.jsの中で次のように走った。

var x = new Date(); 
    console.log(x); 

それは次のように返さ:

2017-09-07T23:42:33.719Z

お知らせZ日時文字列の終わりに? これはズールー時間を表します。 (UTC + 0)

これは、timezoneが指定されていない場合、Node.jsにデフォルトで設定されていると仮定します。すべての日付オブジェクトが正しく返されるように、Node.jsでタイムゾーンをグローバルに指定するにはどうすればよいですか?

+0

いいえ、「Z」はUTC〜https://en.wikipedia.org/wiki/ISO_8601#UTCを表します。これは、コンソールが 'Date.prototype.toISOString()'によってあなたの日付を文字列として表現しているためです。 'console.log(x.toString())'または 'console.log(x.toLocaleString())'を試してください – Phil

+0

申し訳ありません、私はあなたが "ズールー"時間について間違っていたというわけではありませんでした。あたかもそのようなことが起こらないことを願っています – Phil

+0

ズールーはUTCのもうひとつの名前ではありません(どちらも 'Z'で表されます)? –

答えて

2

TZ envをタイムゾーン文字列に設定できます。このように呼ばれたときにUTC 2017-09-08T01:05:58.103Z、時間帯に関係なく、

> process.env.TZ = 'Antarctica/Mawson' 

> Date() 
'Thu Sep 07 2017 17:11:00 GMT-0800 (+05)' 

new Date()戻ります:たとえば

$ export TZ=Europe/Amsterdam 
$ node 

> Date() 
'Fri Sep 08 2017 03:02:57 GMT+0200 (CEST)' 


$ export TZ=America/Anchorage 
$ node 

> Date() 
'Thu Sep 07 2017 17:04:46 GMT-0800 (AKDT)' 

はまた、実行時にprocess.env.TZを設定することができます。

+0

これは、* nix/OSXシステムでのみ機能します。 Windowsでは動作しません。 OPは彼らがWindows 10で動いていると言いました。 –

+0

Hmm。説明をありがとう@MattJohnson –

関連する問題