Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to parse timezone with date

How do we get the date utility to parse the timezone strings?

$>date -d "2018-02-21T02:22:33.221" "+%Y-%m-%dT%H:%M:%S.%3N %Z"
2018-02-20T14:22:33.221 EST

But

$>date -d "2018-02-21T02:22:33.221 EST" "+%Y-%m-%dT%H:%M:%S.%3N %Z"
date: invalid date `2018-02-21T02:22:33.221 EST'

This the local info:

$>uname -r
2.6.32-696.13.2.el6.x86_64

$>date
Tue Jan 16 09:58:52 EST 2018

$>date --version
date (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.
like image 423
Deian Avatar asked Mar 22 '26 01:03

Deian


1 Answers

ISO8601 allows you to replace T with space. Just do it, and your command will work fine:

# date -d "2018-02-21T02:22:33.221 EST" "+%Y-%m-%dT%H:%M:%S.%3N %Z"
date: invalid date `2018-02-21T02:22:33.221 EST'

but:

# date -d "2018-02-21 02:22:33.221 EST" "+%Y-%m-%d %H:%M:%S.%3N %Z"
2018-02-21 10:22:33.221 MSK
like image 183
Viktor Khilin Avatar answered Mar 24 '26 14:03

Viktor Khilin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!