Подтвердить что ты не робот

Преобразование String в DateTime

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

Есть ли простой способ сделать это?

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

4b9b3361

Ответ 1

DateTime.strptime позволяет указать формат и преобразовать String в DateTime.

Ответ 2

Разве это не работает?

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

Ответ 3

У меня был успех:

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

Ответ 4

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

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

Что с Ruby 2.2.

Ответ 5

Это преобразует строку в дату в datetime:

"05/05/2012".to_time

Ответ 6

в 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

Ответ 7

Для разработчиков китайских Rails:

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