ruby - DateTime.strptime 我做错了什么?

标签 ruby datetime

当我这样做时,我的 ruby​​ 程序说我的日期无效:

format = "%D/%M/%Y %H:%M:%S:3N"
date = "21/03/2011 16:39:11.642"

DateTime.strptime(time, format)

这个我也试过:

format = "%D/%M/%Y %H:%M:%S:3"

我得到的是这个:

ArgumentError: invalid date    
        from /usr/local/lib/ruby/1.9.1/date.rb:1688:in `new_by_frags'    
        from /usr/local/lib/ruby/1.9.1/date.rb:1713:in `strptime'
        from (irb):12  
        from /usr/local/bin/irb:12:in `<main>'

最佳答案

看起来您混淆了 strptime 的格式指令。请注意 %M 如何以 format 表示两次,一次代表月份,下一次代表分钟?

%D 表示日期为 %m/%d/%y

%d表示月中的第几天[01,31]

%M表示分钟[00,59]

%m表示月数[01,12]

这应该有效:

format = "%d/%m/%Y %H:%M:%S"
date_time = "21/03/2011 16:39:11.642"

puts DateTime.strptime(date_time, format) #=> 2011-03-21T16:39:11+00:00

这是一个 strptime reference

关于ruby - DateTime.strptime 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380838/

相关文章:

ruby-on-rails - Rails - 在提交按钮上覆盖模型名称

java - 如何考虑夏令时在 mongoDB 中存储 future 的调度日期

c# - 从 DateTime(出生日期)算起的年龄

java - 在 ruby​​ 中通过 "DES-EDE3-CBC"加密并在 Java 中解密

ruby - 为什么当我调用类的实例方法时,初始化不显示为方法?

ruby - 如何重构在同一对象上调用多个方法的代码?

ruby - 如何修复意外的 'sudo bundle install dir_name' ?

python - 将日期列表拆分为连续日期的子集

python - 将 RFC 3339 纳米时间转换为 Python 日期时间

mysql - 获取某个时间范围内 2 个日期的特定数据