Как я могу конвертировать дд / ммм / гг чч: мм AM / PM в формат событий iCal? - PullRequest
1 голос
/ 23 января 2012

У меня есть список дат в этом формате:

05/Jan/12 8:00 AM

День всегда состоит из двух цифр, но час может состоять из одной или двух цифр.

Я хотел бы преобразовать это в формат iCal:

20120105T080000Z

Есть ли модуль, который это делает?

Ответы [ 2 ]

4 голосов
/ 23 января 2012

Достаточно было бы основного модуля Time :: Piece :

#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
my $str = q(05/Jan/12 8:00 AM);
my $t = Time::Piece->strptime($str,"%d/%b/%y %I:%M %p");
print $t->datetime, "\n";

Это предполагает ваше местное время и будет содержать тире в выводе:

2012-01-05T08:00:00
2 голосов
/ 23 января 2012

Должно быть в состоянии сделать это, используя комбинацию DateTime :: Format :: Strptime и DateTime :: Format :: ICal .

Кроме того, вашВыходные данные отображаются в формате UTC / GMT (обозначены буквой «Z»), но ваш ввод не указывает часовой пояс.Поэтому, как часть вашего решения, вам нужно будет указать, в какой часовой пояс следует вводить время ввода.

См. Также http://datetime.perl.org/wiki/datetime/page/Modules

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...