Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Convert UTC time to local time using strftime and zsh/datetime



I have a screenshot of my iPhone which shows that it was taken at 11:42 a.m.

When I look at the file in Finder, it shows that it was taken at 11:42 a.m.
on Feb 11

You can see a screenshot here:
http://images.luo.ma/skitch/iPhonePhotos-1142am-20150220-231455.jpg

When I use `mdls -raw -name kMDItemContentCreationDate test.png` (a Mac
command to get the Creation Date), I get

2015-02-11 16:42:30 +0000

as the answer. This is, I believe, UTC. So I need to convert that to local
(US/Eastern) time.

I'm not sure how to do that, so heres what I did

1) Load the appropriate module

> zmodload zsh/datetime

2) get the Unix EPOCH time from the date/time stamp we have:

> strftime -r "%Y-%m-%d %H:%M:%S +0000" "2015-02-11 16:42:30 +0000"
1423690950

3) Convert '1423690950' to US/Eastern time:

> strftime "%Y-%m-%d %H:%M:%S" "1423690950"
2015-02-11 16:42:30

But that's still giving me '16' as the hour. It should be 11, shouldn't it?

4) Try again, this time making sure that I define the time zone:

> TZ=US/Eastern strftime "%Y-%m-%d %H:%M:%S" "1423690950"
2015-02-11 16:42:30

Same time.

OK, so I'm obviously missing something. I checked '1423690950' on various
online "Unix time" converters and they confirm that it's 16:42 my time, but
since I know the picture was taken at 11:42, I'm wondering what I did wrong.

Tj


Messages sorted by: Reverse Date, Date, Thread, Author