我怀疑 44029.7004451092 只是自 1900 年以来天数的一小部分。因此,如果您可以访问该数字(我不确定如何访问,因为我无法访问 Outlook 电子邮件,但不应该太很难从对象中访问它),然后我们可以编写一个函数来提取时间。
例如,假设您已提取该.Data
字符串:'44029.7004451092'
。
我们可以将其传递给自定义函数。这个函数基本上将字符串分成两部分。第一部分是日期(即 44029)。这就是我们得到日期的地方。第二部分是句号之后的一系列数字,我假设它是指一天中的一小部分。(例如,0.5 是下午 12 点。)
然后,我们可以做一些简单的算术运算,根据一天中的秒数计算出该分数中有多少小时、分钟和秒。然后我们把它包装起来,并返回一个 POSIXct 对象。
get_time_from_date <- function(x, day_seconds = 86400) {
day_fraction <- as.numeric(paste0('0.', strsplit(x, '\\.')[[1]][2]))
num_seconds <- day_fraction * day_seconds
day_hour <- num_seconds %/% 3600
day_min <- num_seconds %% 3600 %/% 60
day_sec <- num_seconds %% 3600 %% 60
actual_date <- as.Date(as.numeric(strsplit(x, '\\.')[[1]][1]), origin = "1899-12-30")
return(as.POSIXct(paste0(actual_date, ' ', day_hour, ':', day_min, ':', day_sec)))
}
get_time_from_date('44029.7004451092')
# [1] "2020-07-17 16:48:38 NZST"
时区将取决于您的系统。我无法验证这是否正确,但希望它对你有用。