Timezone conversion

Александр Деревянко aeder at list.ru
Sun Nov 28 10:10:28 PST 2004


Jimmy Mäkelä | Loopia Webbhotell AB wrote:

> Hi
>
> I'm trying to convert a date from one timezone into another using the 
> date-command, but I can't seem to get it to work.
>
> The problem can be illustrated as below, though in reality I get the 
> date from another source of course, otherwise I wouldn't have to do this.
>
> Take a date in some timezone other than your own, in this example I 
> generate the current time in UTC:
>
>> TZ=UTC date +"%d %b %Y %H:%M:%S %z"
>
> 28 Nov 2004 12:02:18 +0000
>
> Try to use date -j to convert a date of this format into the default 
> display-format:
>
>> TZ=CET date -j -f "%d %b %Y %H:%M:%S %z" "28 Nov 2004 12:02:18 +0000"
>
> Warning: Ignoring 5 extraneous characters in date string (+0000)
> Sun Nov 28 12:02:18 CET 2004
>
> The result is wrong of course because the timezone is ignored even 
> though i specify %z in the format-string. The date in CET should be 
> 13:02:18.
>
> Now the question; does anyone know why the %z is ignored? Am I missing 
> something, and if so what?
>
> The man-page for the -f parameter states "Parsing is done using 
> strptime(3)." and since strptime allows %z I was assuming that the 
> example above should work.
>
> I would be really thankful for some help in getting around this.
>
> Thanks in advance.
>
> Best regards,
> Jimmy Mäkelä
>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe at freebsd.org"
>
>

Try the following:
1. Output date in seconds from epoch
     SECONDS=$(date ...  "+%s")
2. Change the time zone.
     TZ=CET
      export TZ
      date -r  $SECONDS

Best regards,
Alexander Derevianko.


More information about the freebsd-questions mailing list