epo
epo is a handy Unix time <-> date string converter that also taking multiple time zones into account. Written in Rust.
$ epo 1648771200 1648771200+86400 greenwich
| Epoch | Greenwich |
| ---------- | ------------------------ |
| 1648771200 | 2022-04-01T00:00:00+0000 |
| 1648857600 | 2022-04-02T00:00:00+0000 |
Install
brew tap wtetsu/epo
brew install epo
Usage
UNIX time → date string
Basically just specify Unix time and timezone.
$ epo 1648771200 greenwich
| Epoch | Greenwich |
| ---------- | ------------------------ |
| 1648771200 | 2022-04-01T00:00:00+0000 |
Multiple UNIX times x Multiple time zones.
$ epo 1648771200 1648771200+86400 "1648771200+86400*2" greenwich +0900 new_y
| Epoch | Greenwich | +0900 | America/New_York |
| ---------- | ------------------------ | ------------------------ | ------------------------ |
| 1648771200 | 2022-04-01T00:00:00+0000 | 2022-04-01T09:00:00+0900 | 2022-03-31T20:00:00-0400 |
| 1648857600 | 2022-04-02T00:00:00+0000 | 2022-04-02T09:00:00+0900 | 2022-04-01T20:00:00-0400 |
| 1648944000 | 2022-04-03T00:00:00+0000 | 2022-04-03T09:00:00+0900 | 2022-04-02T20:00:00-0400 |
Options can be in any order. You can also write a formula: add 86400 to get one day later.
When specifying tz database names, it is OK to use forward matching (here "new_y" is assumed to be America/New_York).
You can also write JavaScript code (boa is embedded)
epo "range(10).map(i=>1647165300+i*60)" los_angeles phoenix
It prints a Markdown formatted table, so it can be pasted here as is.
Epoch | America/Los_Angeles | America/Phoenix |
---|---|---|
1647165300 | 2022-03-13T01:55:00-0800 | 2022-03-13T02:55:00-0700 |
1647165360 | 2022-03-13T01:56:00-0800 | 2022-03-13T02:56:00-0700 |
1647165420 | 2022-03-13T01:57:00-0800 | 2022-03-13T02:57:00-0700 |
1647165480 | 2022-03-13T01:58:00-0800 | 2022-03-13T02:58:00-0700 |
1647165540 | 2022-03-13T01:59:00-0800 | 2022-03-13T02:59:00-0700 |
1647165600 | 2022-03-13T03:00:00-0700 | 2022-03-13T03:00:00-0700 |
1647165660 | 2022-03-13T03:01:00-0700 | 2022-03-13T03:01:00-0700 |
1647165720 | 2022-03-13T03:02:00-0700 | 2022-03-13T03:02:00-0700 |
1647165780 | 2022-03-13T03:03:00-0700 | 2022-03-13T03:03:00-0700 |
1647165840 | 2022-03-13T03:04:00-0700 | 2022-03-13T03:04:00-0700 |
In the above table, you can see the moment when Los Angeles enters daylight saving time: -0800 becomes -0700, and suddenly it is 03:00. Incidentally, Phoenix is known as an area in the U.S. where daylight saving time is not adopted, and it remains at -0700 all the time.
Date string → UNIX time
It interprets ISO 8601 formats appropriately.
$ epo 2022-04-01 2022-05-01T12:30 2022-06-15T12:30:45 tokyo hawaii gmt
| Date | Asia/Tokyo | US/Hawaii | GMT |
| ------------------- | ---------- | ---------- | ---------- |
| 2022-04-01T00:00:00 | 1648738800 | 1648807200 | 1648771200 |
| 2022-05-01T12:30:00 | 1651375800 | 1651444200 | 1651408200 |
| 2022-06-15T12:30:45 | 1655263845 | 1655332245 | 1655296245 |
Top comments (0)