2011-08-17 166 views
2

Sys.Date()返回日期對象,但在運行R2.12不同的機器上,我得到不同的輸出輸出格式

> Sys.Date() 
[1] "08/17/2011 00:00:00.000 UTC" 

> Sys.Date() 
[1] "2011-08-17" 

前者看起來功能就像一個POSIX對象,即使它仍然是一個日期對象。兩種環境之間的設置有什麼不同可能會導致這個問題?

+1

我幾乎可以肯定這與任何導致您在[動物園中的不同日期格式]中的問題有關(http://stackoverflow.com/q/5915728/271616)。 –

+2

第一個格式很奇怪 - 日期部分的排序是錯誤的,還有'/' - 所以我懷疑它是* POSIX類。 Sys.Date()不應該像第一個那樣返回任何東西。這兩臺機器的操作系統是什麼? 'Sys.Date()'被實現爲'as.Date(as.POSIXlt(Sys.time()))''你可以發佈這些步驟的細節 - 從Sys.time() as.POSIXlt()'在那個時候等。 –

+0

我記得在錯誤配置的系統上看到類似的問題。除了Gavin要求的輸出外,你還可以輸出'sessionInfo()'? – Iterator

回答

1

難道系統設置爲不同的語言環境?嘗試

Sys.getlocale(); 

另一種可能的情況是,一些邪惡靈魂「改寫」的Sys.Date()功能與另一個。在兩個系統上嘗試運行

base::Sys.Date(); 

。如果你有一個軟件包,而不是基地,那就是加載一個叫做Sys.Date()的函數,那麼你應該撥打base::Sys.Date()來確保你得到了正確的。

+0

非常感謝。將嘗試。 – gappy

+0

你有沒有想過這個?是你的OS X之一嗎? – adamleerich