On Sun, 29 Aug 2021 19:49:19 -0700 (PDT), "hongy...@gmail.com" <hongyi.z...@gmail.com> declaimed the following:
>On Ubuntu 20.04.2 LTS, I use the >[recent2](https://github.com/dotslash/recent2/blob/master/recent2.py) to log >and query my bash history, which uses a sqlite3 database to store the history >information. The `datetime` of running a command is inserted in the sqlite3 >database with [a `unixepoch` >format](https://github.com/dotslash/recent2/blob/f1018aee228c710cc7d1b8b93bc0228791a54563/recent2.py#L45), > and it will be converted into `localtime` accordingly when retrieved and >displayed later. > As I read it, it is interpreting whatever value was provided as UNIXEPOCH when storing the value -- but stores it as an ISO date/time string! https://www.sqlite.org/lang_datefunc.html sqlite> select datetime(1092941466, 'unixepoch'); 2004-08-19 18:51:06 sqlite> sqlite> select datetime('now'); 2021-08-30 22:28:58 sqlite> I can't see anything in that code listing that explicitly manipulates the date/time when fetched for output. Nor do I see the connection specifying Python adapter usage: https://docs.python.org/3/library/sqlite3.html#default-adapters-and-converters so I'd expect the output to be in ISO UTC format; the native result of using SQLite3's datetime().. """ if not args.hide_time: cmd_time = row_dict["command_dt"] if args.time_first: print(f'{Term.YELLOW}{cmd_time}{Term.ENDC} {colored_cmd}') else: padded_cmd = pad(raw_text=row_dict['command'], print_text=colored_cmd) print(f'{padded_cmd} # rtime@ {Term.YELLOW}{cmd_time}{Term.ENDC}') """ >But I found that it did not perform the correct conversion according to the >time zone setting on the machine, as shown below: >```shell >werner@X10DAi-00:~$ rm 222222222222222222 >rm: cannot remove '222222222222222222': No such file or directory >werner@X10DAi-00:~$ recent -fo -w . 2222222222222 >rm 222222222222222222 # rtime@ 2021-08-29 10:57:13 >werner@X10DAi-00:~$ date >Sun 29 Aug 2021 06:57:22 PM CST >``` Might have helped to mention you were in China... To me, CST is North America Central Standard Time (and I'd have expected this time of year to see CDT - Central Daylight Time)... That led me on a weird meaningless side track... What documentation do you have that says it will display the date/time in local timezone? (The README appears to be incorrect -- the utility logs unix epoch [UTC seconds since 1970] AS ISO UTC string). sqlite> select datetime(1092941466, 'unixepoch'); 2004-08-19 18:51:06 sqlite> select datetime(1092941466, 'unixepoch', 'localtime'); 2004-08-19 14:51:06 sqlite> sqlite> select datetime('now', 'localtime'); 2021-08-30 18:50:19 sqlite> select datetime('now'); 2021-08-30 22:50:32 sqlite> I'm in EDT (Eastern Daylight Time) -- so 4 hours behind UTC. -- Wulfraed Dennis Lee Bieber AF6VN wlfr...@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/ -- https://mail.python.org/mailman/listinfo/python-list