用R转换日期字符串

时间:2017-02-13 21:10:59

标签: r date format

我在date strings中使用R。基本上,我有三个不同的strings代表日期变量。我stringsscraping data的这个奇怪日期web

是否可以将这三个不同的日期strings转换为通用格式,以便使用基本R代码更轻松地对它们执行逻辑?以下是strings的样子。任何帮助是极大的赞赏。

1. "Wed, Feb 7, 2017  7:30 pm"
2. "Wed Feb  7 08:00:04 2017"
3. "2017-02-7 13:06:14 PST"  # Sys.time()

更新:我现在对as.POSIXct有了更好的理解,但我仍然不明白为什么这不起作用?

as.POSIXct('02/15/2017, 10:00 PM', format = "%M/%D/%Y, %H:%M %r") 

2 个答案:

答案 0 :(得分:1)

虽然您的具体问题已在评论中得到解答。

我想将此作为其他可能遇到类似问题且可能遇到此问题的人的一般参考。

所以,正如你在d.b的评论中所说的那样,你的数据时间字符串已经通过命令解析:

<label>...</label>

第一个和第二个案例的区别在于as.POSIXct("Wed, Feb 7, 2017 7:30 pm", format = "%A, %b %d,%Y %H:%M")

因此,这是格式的一般指导:

  • format 缩写的工作日
  • %a 完整的工作日
  • %A 缩短的月份
  • %b 整月
  • %B 特定于区域设置的日期和时间
  • %c 十进制日期
  • %d 小时(24小时)
  • %H 小时(12小时)
  • %I 一年中的十进制日
  • %j 十进制月
  • %m 十进制分钟
  • %M 区域设置特定的AM / PM
  • %p 十进制秒
  • %S 一年中的十进制周(从星期日开始)
  • %U 十进制工作日(0 =星期日)
  • %w 一年中的十进制周(从星期一开始)
  • %W 特定于区域设置的日期
  • %x 特定于区域设置的时间
  • %X 2位数年份
  • %y 4位数年份
  • %Y 偏离GMT
  • %z 时区(字符)

如果您想要在不同格式之间进行转换,这也很有用:

%Z

来源:https://www.stat.berkeley.edu/~s133/dates.html

答案 1 :(得分:0)

  1. as.POSIXct("Wed, Feb 7, 2017 7:30 pm", format = "%A, %b %d,%Y %H:%M", tz="PST8PDT")

  2. as.POSIXct("Wed Feb 7 08:00:04 2017", format = "%A %b %d %H:%M:%S %Y",tz="PST8PDT")

  3. as.POSIXct("2017-02-7 13:06:14 PST", format = "%Y-%m-%d %H:%M:%S",tz="PST8PDT")