преобразование строки в DateTime



Мне нужно разобрать следующую строку в объект DateTime:
30/Nov/2009:16:29:30 +0100



существует ли простой способ сделать это?



PS: Я хочу, чтобы преобразовать строку выше как есть. Двоеточие после года-это не опечатка. Я также хочу решить проблему с Руби, а не с Рором.

581   7  

7 ответов:

дата и время.strptime позволяет указать формат и преобразовать строку в datetime.

разве это не должно работать?

"30/Nov/2009 16:29:30 +0100".to_datetime

Я имел успех с:

require 'time'
t = Time.parse(some_string)

Я Time.parse("02/07/1988"), как и некоторые другие плакаты.

интересно получилось, что Time был загружен по умолчанию, когда я открыл IRB, но Time.parse не был определен. Я должен был require 'time' чтобы заставить его работать.

это с Ruby 2.2.

это преобразует строку в date в datetime:

"05/05/2012".to_time

для китайских разработчиков рельсов:

DateTime.strptime('2012-12-09 00:01:36', '%Y-%m-%d %H:%M:%S')
=> Sun, 09 Dec 2012 00:01:36 +0000

в Ruby 1.8, модуль ParseDate преобразует этот и многие другие форматы даты/времени. Тем не менее, он не имеет дело изящно с двоеточием между годом и часом. Предполагая, что двоеточие является опечаткой и на самом деле является пробелом, то:

#!/usr/bin/ruby1.8

require 'parsedate'

s = "30/Nov/2009 16:29:30 +0100"
p Time.mktime(*ParseDate.parsedate(s))    # =>  Mon Nov 30 16:29:30 -0700 2009

Comments

    Ничего не найдено.