erlang 時間處理

經常使用代碼
spa

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


erlang:now轉本地時間ast

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

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

 

erlang:now轉世界時間erlang

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

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

17>im

  

驗證合法的日期error

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.

相關文章
相關標籤/搜索