我必须将几个ASCII二进制文件转换为MySQL。这些文件和记录包含几个6位数的字段,表示090403(yymmdd)形式的日期,我想将它们转换为2009-04-03。如何使用此输入创建日期对象?
答案 0 :(得分:4)
您需要的是ParseDate模块:
require 'parsedate'
# => true
res = ParseDate.parsedate("090403")
# => [9, 4, 3, nil, nil, nil, nil, nil]
Time.local(*res)
# => Fri Apr 03 00:00:00 +0100 2009
答案 1 :(得分:1)
(a)日期类具有strptime方法
d = Date.strptime("090403", "%d%m%y")
这为您提供了标准的日期类
(b)标准库具有parsedate方法
require 'parsedate'
pd = ParseDate.parsedate("090403")
Time.local(pd)
这会给你一个时间等级
答案 2 :(得分:0)
您可以使用DateTime.strptime方法。
答案 3 :(得分:0)
> d = Date.strptime("090403", "%y%m%d")
=> #<Date: 4909849/2,0,2299161>
> puts d
2009-04-03
答案 4 :(得分:0)
我更喜欢使用Time。
require 'time'
Time.parse("090403").strftime("%Y-%m-%d")