Ошибка разбора даты и времени Ruby Soap - PullRequest
0 голосов
/ 09 октября 2011

Я пытаюсь преобразовать дату и время, возвращаемое обратно из мыльного сервиса, который выглядит следующим образом: «2011-09-30T11: 25: 56-05: 00».

Я хочу разобрать его в этом формате "2011-09-30 11:25:56"

Когда я жестко кодирую строку даты в своем коде ruby, она работает:

def parse_date(datestring)
    formattedDateTime = DateTime.strptime("2011-09-30T11:25:56-05:00", "%Y-%m-%dT%I:%M:%S%z")
    dt = formattedDateTime.strftime("%Y-%m-%d %H:%M:%S")

    return dt
end

Этот пример работает, когда я жестко кодирую строку даты. Однако приведенный ниже пример не будет работать. Используемая строка даты - «2011-09-30T11: 25: 56-05: 00», что точно так же, как я использую жесткое кодирование в приведенном выше примере.

def parse_date(datestring)
    formattedDateTime = DateTime.strptime(datestring, "%Y-%m-%dT%I:%M:%S%z")
    dt = formattedDateTime.strftime("%Y-%m-%d %H:%M:%S")

    return dt
end

Таким образом он выдает эту ошибку: [01:29:06 PM 2011-10-09] SourceAdapter вызвал исключение запроса: закрытый метод `sub! ' призвал к #

Может кто-нибудь, пожалуйста, дайте мне знать, что происходит?

Ответы [ 2 ]

0 голосов
/ 10 октября 2011

Я разобрался в проблеме. Мне пришлось позвонить to_s, потому что дата, которую я пытался проанализировать, на самом деле не была строкой.

def parse_date(dateobject)

    tempdatestring = dateobject.to_s

    formattedDateTime = DateTime.strptime(tempdatestring, "%Y-%m-%dT%H:%M:%S%z")
    dt = formattedDateTime.strftime("%Y-%m-%d %H:%M:%S")

    return dt
end
0 голосов
/ 09 октября 2011

Я не могу воспроизвести эту проблему.Какова область действия этого вызова метода и определения?

Без дополнительной информации почти невозможно сказать, в чем ваша проблема, но см. Предположение ниже.рискну догадаться, хотя.Попробуйте это ..

def parse_date (datestring)
  DateTime.parse(datestring).strftime("%Y-%m-%d %H:%M:%S")
end
...