Unix Epoch时间戳到人类可读日期时间和后退转换

时间:2013-12-17 13:44:56

标签: linux date unix datetime erlang

在Erlang中,我可以通过以下代码获得Unix Epoc时间戳:

{MegaSecs, Secs, MicroSecs} = now().
UnixTime = MegaSecs * 1000000 + Secs.

OR(如某些网站所建议的)

calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.

但是,erlang:now()的结果发生了转换。如果我的格式为"YYYY-MM-DD HH:MI:SS"格式的给定日期时间值,该怎么办? "2012-12-30 15:13:40" 现在是24小时格式。
这是我在erlang中需要做的website gives the complete picture

在我的代码中,我如何可以“随意”将人类可读格式转换为unix epoch时间戳,反之亦然。这样,如果在我的程序中我将时间戳存储为Unix Epochs,在读取它们时,我可以从unix时间戳值自动检索人类可读格式,反之亦然。

2 个答案:

答案 0 :(得分:4)

您可以使用此lib:https://github.com/selectel/tempo

  

tempo 是一个用于在Erlang中解析和格式化日期的库。它为libc的strptime和strftime函数提供了一个干净而漂亮的界面,遗憾的是Erlang的标准库中没有这些函数。

答案 1 :(得分:3)

节奏还有qdate:

https://github.com/choptastic/qdate

有兴趣听听比较:)