我正在尝试使用sqlite数据库中的日期。我将日期存储为时间戳,但是当我使用strftime()将它们格式化为人类可读的日期时,我得到了意外的结果。
考虑以下情况,我选择当前时间戳:
SELECT strftime("%s","now");
1281353727
然后,我尝试使用我所知道的时间戳来格式化日期,希望得到一个人类可读的今天日期格式:
SELECT strftime('%d - %m - %Y ', 1281353727);
01 - 04 - 3503
我得到了上面的结果。这是正确的行为吗?我做错什么了吗
先谢谢你,
凯文
3条答案
按热度按时间nwwlzxa71#
首先需要将timestamp转换为datetime:
1wnzp6jl2#
这对我很有效:
hts6caw33#
将timestamp转换为datetime,然后格式化它:
catch 1
确保添加了
localtime
参数。否则,您将获得居住在“格林威治”的人所感知的日期(因为时间戳从1/1/1970 00:00 UTC(=GMT)开始计数)。请参阅下面的日期输出如何变化取决于我们是否使用'本地时间',在工作站与EEST时区。
输出:15 - 06 - 2021
输出:14 - 06 - 2021
这是因为在00:01东部时间,格林尼治标准时间仍然是昨天。
catch 2
许多项目(例如ViberPC)也会将毫秒(甚至微秒)添加到时间戳中,在这种情况下,您需要首先除以1000(或分别除以1000000):