2017-12-08 22 views
4

私は何が起こったのかわかりませんが、これに苛立ちしています。私は現在、GMT-8タイムゾーンにいます。私がSys.Date()と入力すると、明日の日付が返されます。間違った日付を示すSys.Date()

現在の日付&時刻が12/7/17 22:41である今のところ: 私はSys.time()を入力し、これは私が得るものです:

Sys.time() 
[1] "2017-12-08 14:37:22 GMT" 

私はその後、セットアップに自分のタイムゾーンを試してみてください。 Sys.setenv(TZ=Sys.timezone())

それは...エラーなしでクリアした後、私は再びSys.Date()を入力してもらう

Sys.Date() 
[1] "2017-12-08" 

12/7/17になるはずです!

何か助けていただければ幸いです。

+1

システムで(Rを再起動した後の) 'Sys.timezone()'の出力は何ですか?そのドキュメントから: "TZが設定されていても空でも無効でも、ほとんどのプラットフォームはデフォルトでUTCに設定されています。これは通称「GMT」と呼ばれています。 'Sys.setenv(TZ = Sys.timezone())'はこれにTZを設定します。 – Roland

+0

「Sys.timezone()」と入力すると「GMT-8」が表示されます – Rime

+1

システムで返されるメモ時間を 'GMT'にします。 '2017-12-08 14:37:22 GMT'。したがって、有効期限を確認するためにあなたの現地時間に変換する必要があります。 – MKR

答えて

3

どこでもMy Macシステムでは、私は、Mac OS 10.13.2にアップデートした後R 3.4.1でこれを見た:

Sys.time() 
[1] "2017-12-08 20:52:01 GMT" 
Warning: 
In as.POSIXlt.POSIXct(x, tz) : 
    unknown timezone 'zone/tz/2017c.1.0/zoneinfo/Europe/Berlin' 

私はSys.setenv(TZ = "Europe/Berlin")を設定することでこれを修正できます。米国の有効なタイムゾーン名はOlsonNames()[grepl("US", OlsonNames())]です。 OSのアップデートに

Sys.time() 
[1] "2017-12-08 21:57:15 CET" 

Sys.timezone() 
#[1] "Europe/Berlin" 

だから、これが問題のようになります。

R 3.4.3にアップグレードした後、私はこれを参照してください。実際には、R 3.4.3のリリースノートには、この言う:

回避策は、10.13.1に のMacOS 10.13「ハイシエラ」内のファイルと、再びタイムゾーンの位置の変化のために追加されました

、したがって、 が--with-internal-tzcode(macOSのデフォルト)で設定されている場合、 デフォルトのタイムゾーンはシステム設定から正しく推測されます。

関連する問題