如何在R中导入以下日期/时间格式示例?我愿意以这种格式保留所有信息。
2016-09-12T09:47:00.000+0200
其中:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
TZD = time zone designator (Z or +hh:mm or -hh:mm)
我尝试strptime
但没有成功,因为我找不到如何匹配s
和TZD
,例如:
> strptime("2016-09-12T09:47:00.000+0200", format = '%Y-%m-%dT%H:%M:%S.000%z')
[1] "2016-09-12 09:47:00
答案 0 :(得分:4)
你可以使用(非常新的)anytime包来执行此而不使用格式:
// Using Jquery to assign the element to the variable name
$div_1 = $(div_1);
$div_2 = $(div_2);
$div_3 = $(div_3);
// set the CSS for each div
for (i = 1; i <= 3; i++) {
$div_[i].css({'left': 100 +'px'});
}
我可能会尝试扩展它以识别尾随的TZ偏移,因为底层的Boost date_time代码支持它。但是,到目前为止,我已经跟随R并将时间解释为本地时间,它也会(自动)找到本地时区。
anytime也会自动支持小数秒(但您需要确保显示它们):
R> anytime("2016-09-12T09:47:00.000+0200")
[1] "2016-09-12 09:47:00 CDT"
R>
我倾向于使用微秒数据,所以我总是在所有方面都有六位数字,如图所示。
答案 1 :(得分:2)
要匹配秒的小数部分(来自示例中的docs?strptime),请使用:
format = '%Y-%m-%dT%H:%M:%OS%z'
然后,看到3位数:
op <- options(digits.secs = 3)
strptime("2016-09-12T09:47:00.123+0200", format = '%Y-%m-%dT%H:%M:%OS%z')
##[1] "2016-09-12 03:47:00.123"
回去看不到3位数:
options(op)
我相信这确实解析了UTC的偏移量(即+0200
)。我在美国东海岸,是EDT(-0400)。因此,我落后6小时(+0200),以便09:47:00.123+0200
成为03:47:00.123
EDT。