【发布时间】:2020-05-30 03:53:10
【问题描述】:
我需要将{{2012, 9, 21}, {13, 21, 11}} 转换为timestamp()。
我该怎么做?
【问题讨论】:
标签: erlang
我需要将{{2012, 9, 21}, {13, 21, 11}} 转换为timestamp()。
我该怎么做?
【问题讨论】:
标签: erlang
修正版:
Seconds = calendar:datetime_to_gregorian_seconds(DateTime) - 62167219200,
%% 62167219200 == calendar:datetime_to_gregorian_seconds({{1970, 1, 1}, {0, 0, 0}})
{Seconds div 1000000, Seconds rem 1000000, 0}.
【讨论】:
timestamp() 被定义为如果可能的话从 1970 年开始,我的回答是 not ok :)
now/0 返回的时间戳一样。如果您需要当地时间,请先使用calendar:local_time_to_universal_time_dst/1 进行转换。
你可以用这个
to_timestamp({{Year,Month,Day},{Hours,Minutes,Seconds}}) ->
(calendar:datetime_to_gregorian_seconds(
{{Year,Month,Day},{Hours,Minutes,Seconds}}
) - 62167219200)*1000000;
这是此模块的一部分 Github/Arboreus
【讨论】: