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

时间:2016-10-15 13:24:48

标签: r

我正在尝试进行API调用,这需要一个毫秒的时间。我是R的新手,并且谷歌搜索了几个小时来实现类似于Java的东西:

System.currentTimeMillis();

我看到的只有像

这样的东西

Sys.Date()Sys.time

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

我希望有人可以给我一个解决我问题的oneliner。

3 个答案:

答案 0 :(得分:23)

Sys.time不会返回“格式化时间”。它返回一个POSIXct类对象,这是自Unix纪元以来的秒数。当然,当您打印该对象时,它会返回格式化的时间。但是打印的东西不是它的样子。

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

R> print(as.numeric(Sys.time())*1000, digits=15)
[1] 1476538955719.77

根据您要进行的API调用,您可能需要删除小数毫秒。

答案 1 :(得分:5)

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

# 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

答案 2 :(得分:0)

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

as.numeric(Sys.time())

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

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