timew-dates - Man Page

date formats supported by Timewarrior

Synopsis

Description

Timewarrior supports the following datetime formats based on ISO-8601. If times are followed by a 'Z', they are assumed to be in UTC, otherwise local time (TZ) is assumed.

<extended-date> [T <extended-time>]   Extended date, optional extended time
<date> [T <time>]                     Date, optional time
<extended-time>                       Extended time
<time>                                Time

extended-date

YYYY-MM-DD                          Year, month, day
YYYY-MM                             Year, month, 1st
YYYY-DDD                            Year, Julian day 001-366
YYYY-WwwD                           Year, week number, day number
YYYY-Www                            Year, week number, day 1

extended-time

hh:mm[:ss]Z                         Hours, minutes, optional seconds, UTC
hh:mm[:ss][+/-hh:mm]                Hours, minutes, optional seconds, TZ

date

YYYYMMDD                            Year, month, day
YYYYWww                             Year, week number, day number
YYYYDDD                             Year, Julian day 001-366

time

hhmm[ss]Z                           Hour, minutes, optional seconds, UTC
hhmm[ss][+/-hh[mm]]                 Hour, minutes, optional seconds, TZ

Examples

Here are some examples for ISO datetimes:

2016-06-09T08:12:00Z
2016-06T08:12:00+01:00
2016-06T08:12Z
2016-161
2016-W244
2016-W24
20160609T081200Z
2016W24
8:12:00Z
0812-0500

In addition to the standard date formats, the following named dates are supported:

now                                   Current date and time
today                                 Current date at 0:00:00
yesterday                             Yesterday at 0:00:00
tomorrow                              Tomorrow at 0:00:00 (midnight tonight)
<day-of-week>                         Previous named day at 0:00:00
<month-of-year>                       Previous 1st of the month at 0:00:00
hh:mm[:ss][am|a|pm|p]                 Short time format
Nst, Nnd, Nrd, Nth                    Previous 1st, 2nd, 3rd ...
<epoch>                               POSIX time (at least 315532800)
later                                 2038-01-18T0:00:00 (Y2K38)
someday                               2038-01-18T0:00:00 (Y2K38)
sopd, eopd                            Start/end of previous day
sod, eod                              Start/end of current day
sond, eond                            Start/end of next day
sopw, eopw                            Start/end of previous week
sow, eow                              Start/end of current week
sonw, eonw                            Start/end of next week
sopww, eopww                          Start/end of previous work week (mon - fri)
soww, eoww                            Start/end of current work week (mon - fri)
sonww, eonww                          Start/end of next work week (mon - fri)
sopm, eopm                            Start/end of previous month
som, eom                              Start/end of current month
sonm, eonm                            Start/end of next month
sopq, eopq                            Start/end of previous quarter
soq, eoq                              Start/end of current quarter
sonq, eonq                            Start/end of next quarter
sopy, eopy                            Start/end of previous year
soy, eoy                              Start/end of current year
sony, eony                            Start/end of next year
easter                                Easter Sunday
eastermonday                          Easter Monday
ascension                             Ascension
pentecost                             Pentecost
goodfriday                            Good Friday
midsommar                             midnight, 1st Saturday after 20th June
midsommarafton                        midnight, 1st Friday after 19th June
juhannus                              midnight, 1st Friday after 19th June

For times, the following are also possible:

8am
24th
monday
august

Notes

The minimum value for the POSIX time format of 315532800 (that is 1980-01-01) was chosen to avoid confusion with ISO dates in the YYYYMMDD format.

Because named dates are defined with time 0:00:00, using them as range end excludes the respective day. E.g. using 'today' as upper range

$ timew sum 2d before today

will not show any intervals of the current day. Use either 'now' or 'tomorrow' in this case:

$ timew sum 2d before now
$ timew sum 2d before tomorrow

See Also

timew-durations(7), timew-hints(7)

Referenced By

timew(1).

2024-07-20 timew 1.7.0 User Manuals