R 以毫秒为单位获取当前时间

R 以毫秒为单位获取当前时间,r,R,我正在尝试执行一个API调用,它需要以毫秒为单位的时间。我是R方面的新手,在Google上搜索了几个小时,以实现Java中的一些功能: System.currentTimeMillis(); 我唯一看到的是这样的东西 Sys.Date()和Sys.time 它返回格式化的日期,而不是以毫秒为单位的时间 我希望有人能给我一个解决我问题的单行程序。无需设置全局变量digits.secs。 有关详细信息,请参见strtime # Print milliseconds of current time

我正在尝试执行一个API调用,它需要以毫秒为单位的时间。我是R方面的新手,在Google上搜索了几个小时,以实现Java中的一些功能:

System.currentTimeMillis();
我唯一看到的是这样的东西

Sys.Date()
Sys.time

它返回格式化的日期,而不是以毫秒为单位的时间


我希望有人能给我一个解决我问题的单行程序。

无需设置全局变量
digits.secs
。 有关详细信息,请参见
strtime

# Print milliseconds of current time
# See ?strptime for details, specifically
# the formatting option %OSn, where 0 <= n <= 6 
as.numeric(format(Sys.time(), "%OS3")) * 1000
#打印当前时间的毫秒数
#有关详细信息,请参见?strtime,特别是

#格式化选项%OSn,其中0
Sys.time
不返回“格式化时间”。它返回一个
POSIXct
classed对象,它是自Unix时代以来的秒数。当然,当您打印该对象时,它会返回格式化的时间。但有些东西是如何打印的并不是它的本来面目

要获得以毫秒为单位的当前时间,只需将
Sys.time
的输出转换为数字,然后乘以1000即可

R> print(as.numeric(Sys.time())*1000, digits=15)
[1] 1476538955719.77
根据要进行的API调用,可能需要删除小数毫秒。

要获取当前历元时间(以秒为单位):

如果您想要获得时差(例如计算持续时间),只需直接减去
Sys.time()
,您将得到格式良好的字符串:

currentTs <- Sys.time()
# about five seconds later
elapsed <- Sys.time() - currentTs
print(elapsed)    # Time difference of 4.926194 secs

currentTs它只是当前时间戳的毫秒分量。我不确定这是否是我们的初衷。您可能需要添加剩余的时间戳。据我所知,OP希望当前系统时间的秒数以毫秒表示。或许OP可以澄清。将时间戳的其余部分转换为毫秒很简单。如果这是所需的输出,我将附加我的答案。更新我签出了Java函数,我想你真的是以毫秒为单位的时间。你是指以毫秒为单位的时间还是以毫秒为单位的时间?对于懒惰的人(去掉分数毫秒):current_timestamp=round(as.numeric(Sys.time())*1000)
currentTs <- Sys.time()
# about five seconds later
elapsed <- Sys.time() - currentTs
print(elapsed)    # Time difference of 4.926194 secs