2011-08-17 116 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