From 1a73c8d5284093de58b71cf26830c2aacf350b4f Mon Sep 17 00:00:00 2001 From: spalax Date: Sun, 25 Dec 2016 17:05:08 -0400 Subject: [PATCH] Question about default timezone ":/etc/localtime" --- ...47__etc__47__localtime__34___timezone__63__.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 doc/forum/How_to_parse___34__:__47__etc__47__localtime__34___timezone__63__.mdwn diff --git a/doc/forum/How_to_parse___34__:__47__etc__47__localtime__34___timezone__63__.mdwn b/doc/forum/How_to_parse___34__:__47__etc__47__localtime__34___timezone__63__.mdwn new file mode 100644 index 000000000..cf7f2b5fa --- /dev/null +++ b/doc/forum/How_to_parse___34__:__47__etc__47__localtime__34___timezone__63__.mdwn @@ -0,0 +1,13 @@ +Hello, +I am writing a plugin that uses the timezone. Ikiwiki.pm [defines the default timezone](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=IkiWiki.pm;h=fa71f479107a2388fde2fe00a67bfa2daa4fb3a9;hb=HEAD#l638) to ``:/etc/localtime``. The problem is that I do not know how to parse this. + +In my code, I have lines like ``$now = DateTime->now(time_zone => $config{timezone});`` or ``$thistime = DateTime->from_epoch(epoch=>$thistime, time_zone=>$config{timezone});``. They work well when timezone is something like ``Europe/Paris``, but with the default ``:/etc/localtime``, I get the error message ``The timezone ':/etc/localtime' is an invalid name.`` + +Is there a way to automatically recognize both ``Europe/Paris`` and ``:/etc/localtime``? Or should I add something like the following in my code? + + if ($config{timezone} eq ":/etc/localtime") { + $config{timezone} = DateTime::TimeZone->new(name=>'local')->name(); + } + +Regards, +[[Louis|spalax]]