Формат строки и даты с использованием perl

Я хотел бы конвертировать (используя Perl)

05\/26\/2013 06:09:47 в26-05-2013 06:09:47

Также, как я могу изменить вышеупомянутые даты и время по Гринвичу?

 squiguy06 июн. 2013 г., 07:21
Вы просмотрели CPAN вообще? Там много хороших вещей.
 Jonathan Leffler06 июн. 2013 г., 07:25
CPAN имеет разделы по обработке даты, времени и даты и времени.POSIX модуль имеетstrftime(); (неосновная)POSIX::strptime модуль имеетstrptime(), У вас действительно есть обратная косая черта и косая черта в данных? Вы уверены, что нене хочу2013-05-26 06:09:47 как на выходе? И для этого конкретного преобразования вы можете легко написать регулярное выражение.
 Jonathan Leffler06 июн. 2013 г., 07:29
NB. Чтобы преобразовать время в GMT, вы должны знать, в каком часовом поясе оно представлено. Или вы думаете о 'Unix timestamp 'количество секунд с моментаЭпоха или 1970-01-01 00:00:00 +00: 00?

Ответы на вопрос(1)

Решение Вопроса
use DateTime::Format::Strptime qw( );

my $src_format = DateTime::Format::Strptime->new(
   pattern   => '%m\\/%d\\/%Y %H:%M:%S',
   time_zone => 'local',   # or America/New_York
   on_error  => 'croak',
);

my $dst_format = DateTime::Format::Strptime->new(
   pattern   => '%d-%m-%Y %H:%M:%S',
);

my $dt = $src_format->parse_datetime('05\\/26\\/2013 06:09:47');
$dt->set_time_zone('GMT');
say $dst_format->format_datetime($dt);

Если мы'Если говорить конкретно о локальном и UTC / GMT, то следующее легче, хотя, возможно, немного более загадочно.

use POSIX       qw( strftime );
use Time::Local qw( timelocal );

my ($m,$d,$Y, $H,$M,$S) =
      '05\\/26\\/2013 06:09:47' =~
         m{^(\d+)\\/(\d+)\\/(\d+) (\d+):(\d+):(\d+)\z}
   or die;
say strftime('%d-%m-%Y %H:%M:%S', gmtime(timelocal($S,$M,$H, $d,$m-1,$Y-1900)));
 ikegami06 июн. 2013 г., 07:44
Кто-то указал, что вам может понадобиться время Unix / Epoch, а не время по Гринвичу.$dt->epoch а такжеtimelocal($S,$M,$H, $d,$m-1,$Y-1900) даст время Unix / эпохи.
 david11 июн. 2013 г., 08:16
Я только что понял, что не могу установить модули Perl по некоторым причинам. Поэтому я не могу использовать DateTime. И я'Я не занимаюсь местным временем. Мне нужно конвертировать GMT -7 в GMT. Любая помощь, пожалуйста.

Ваш ответ на вопрос