erlang 时间处理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

常用代码

date()返回P{年,月,日}


erlang:now转本地时间

15> calendar:now_to_local_time(erlang:now()).

{{2012,5,17},{14,32,6}}

 

erlang:now转世界时间

16> calendar:now_to_universal_time(erlang:now()).

{{2012,5,17},{6,33,2}}

17>

  

验证合法的日期

20> calendar:valid_date({0,0,0}).

false

21> calendar:valid_date({0,1,0}).

false

22> calendar:valid_date({0,1,1}).

true

26> calendar:valid_date(90,1,10). 

true 

  

获得本地时间 年 月 日小时 分 秒

1>  {{Year,Month,Day},{Hour,Min,Second}}=calendar:local_time().

{{2012,5,17},{14,13,14}}

2> b().

Day = 17

Hour = 14

Min = 13

Month = 5

Second = 14

Year = 2012

ok

 

获得世界时间

3> calendar:universal_time().

{{2012,5,17},{6,16,27}}

 

本地时间转换到世界时间

10> calendar:local_time_to_universal_time_dst({{2012,3,12},{3,23,12}}).

[{{2012,3,11},{19,23,12}}]

11> calendar:local_time_to_universal_time_dst({{2012,3,12},{4,23,12}}).

[{{2012,3,11},{20,23,12}}]

12> calendar:local_time_to_universal_time_dst({{2012,3,12},{5,23,12}}).

[{{2012,3,11},{21,23,12}}]

13>  calendar:local_time_to_universal_time_dst({{2012,3,12},{15,23,12}}).

[{{2012,3,12},{7,23,12}}]

14>  calendar:local_time_to_universal_time_dst({{2012,3,12},{16,23,12}}).

[{{2012,3,12},{8,23,12}}]

 

世界时间转本地时间

12> calendar:universal_time_to_local_time({{2012,3,12},{3,23,12}}).

{{2012,3,12},{11,23,12}}

13> calendar:universal_time_to_local_time({{2012,3,12},{5,23,12}}).

{{2012,3,12},{13,23,12}}

14> calendar:universal_time_to_local_time({{2012,3,12},{20,23,12}}).

{{2012,3,13},{4,23,12}}

 

计算是星期几

13> calendar:day_of_the_week(1984,5,15).

2

14> calendar:day_of_the_week(2012,5,17).

4

 

计算是否闰年

5> calendar:is_leap_year(1990).

false

6> calendar:is_leap_year(2000).

true

 

计算某年某月有多少天

7> calendar:last_day_of_the_month(2000,2).

29

8> calendar:last_day_of_the_month(2000,3).

31

9> calendar:last_day_of_the_month(1990,2).

28

 

秒转时间

4> calendar:now_to_datetime(erlang:now()).     

{{2012,5,17},{5,41,24}}

5> calendar:seconds_to_daystime(87400).  

{1,{0,16,40}}

6> calendar:seconds_to_daystime(97400).

{1,{3,3,20}}

7> calendar:seconds_to_daystime(80400).

{0,{22,20,0}}

如果没有超过一天可以使用

8> calendar:seconds_to_time(80400).    

{22,20,0}

9> calendar:seconds_to_time(86400).   

** exception error: no function clause matching calendar:seconds_to_time(86400) (calendar.erl, line 357)

 

 

时间转到秒

10> calendar:time_to_seconds({22,20,0}).

80400

11> calendar:time_to_seconds({1,{22,20,0}}).

** exception error: no function clause matching calendar:time_to_seconds({1,{22,20,0}}) (calendar.erl, line 390)

  

计算Unix Timestamp

timestamp() ->

    calendar:datetime_to_gregorian_seconds(erlang:universaltime()).

或者:

timestamp() ->

    {M, S, _} = erlang:now(),  

    M * 1000000 + S.


转载于:https://my.oschina.net/u/1540325/blog/414986

你可能感兴趣的:(erlang 时间处理)