erlang 时间处理

常用代码

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.

时间: 2024-11-05 04:32:50

erlang 时间处理的相关文章

从erlang时间函数说到时间校正体系

很多人会注意到这个问题,erlang提供了2个时间函数,erlang:now() 和 os:timestamp().用法一样,都是返回当前的时间.具体时间是从1970年1月1日零时算起,到现在经过的时间,结果为{MegaSecs, Secs, MicroSecs}. 这两个函数有什么区别? os:timestamp() 获取到的时间为操作系统的时间,不做任何修正:而erlang:now(),每次获取都会确保生成了唯一的时间,就是说,erlang:now()在实现上对时间做了一个校正,每次都生成一

erlang处理mongodb日期时间格式data类型

在项目中,mongo中要创建日期类型,根据这个日期类型进而对mongo设置过期时间自动删除.而mongo中的日期类型,使用ISO格式,例如:ISODate("2012-11-02T07:58:51.718Z") 在java中,例如: db.tianyc04.insert({mark:1, mark_time:new Date()}) ,一个new Date() 直接轻松搞定, 看到 { "_id" : ObjectId("5126e00939899c4cf

Erlang 日期和时间处理、时间戳转换

http://www.csdn 123.com/html/blogs/20131113/95993.htm 获取当前时间 erlang:now()得到的是从1970年1月1日零时起,到现在经过的时间,结果为{MegaSecs, Secs, MicroSecs}.有个问题要注意,还有另外一个函数可以实现同样的功能:os:timestamp() 那么erlang:now()和os:timestamp()的区别是什么? erlang的解释如下: erlang:now() If you do not n

Erlang日期与时间处理

在开发过程中,有两个概念是和地区区域相关的:字符编码和时间;编码和时间的规范演变过程中有文化的冲突有历史的遗留,是软件开发中充满人文气息的一角;关于字符编码我之前整理过一篇文章,[Erlang 0024]Erlang二进制数据处理 这部分知识很有意思,特别是格列佛游记所引出的大端小端概念,妙趣横生;平时笔记中也零零散散记录了一些和时间处理相关的内容,今天按图索骥把相关的资料整理汇集于此. 首先把时间相关的概念解释一下: 有关时间的概念 GMT时间 格林尼治标准时间(Greenwich Mean

mongo的时间类型,erlang中对其的处理

需求:要想在一个调度中,从mongo中查出大于一个时间戳的所有的数据总和. 这个需求很简单,一个是scheduler,还有另一个就是查出来大于某个时间戳的总和,比如大于每天0点时间点的和. 需要注意的是:mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间. 举个栗子: %% 获取当天的0点时间戳 %% GMT时间(格林尼治时间)比北京时间少8小时 get

今天开始实现erlang A-连续时间马尔科夫生灭过程

还没想好用什么语言,我发现我什么语言都不会,我先把算法看懂再说. 1.把每个区段都看作马尔科夫生灭过程 马尔科夫生灭过程: 3.生灭过程 第二种定义是利于了解连续时间马尔科夫链的相关性质的,我们用生灭过程来说明这种定义的意义所在.首先,我们先说明什么是生灭过程.生灭过程是一个计数过程,在这个过程的任意时刻,新到达者以指数速率λn进入系统(生过程),同时系统中的成员以指数速率μn离开系统(灭过程),也就是说假设系统中现在有n个人,那么下一状态有两种,一个是n+1,另一个是n-1.从n状态到n+1状

为什么我要选择erlang+go进行服务器架构

服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 估计很多同学看到这里都会觉得迷惑,go的大名已经如雷贯耳了,但是erlang?这个东东是神马?难道是编程语言?怎么从来没听说过. 这里请允许我先介绍一下使用Erlang开发的比较有名的应用: 一:whatsapp 只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang--一种诞生于上世纪80年代的编程语言,终于在此时走到了聚光灯下.

Erlang网络编程中的一个特别的函数prim_inet:async_accept/2(转)

为了研究怎么用Erlang写一个游戏服务器,我很幸运的下到了一份英雄远征的服务器Erlang源码,这两天花了点时间看代码,其中看到做TCP的accept动作时,它是用的一个函数prim_inet:async_accept/2,这个可跟书上说的不一样(一般来说书上教的是用gen_tcp:accept/1),于是我google了一下,发现找不到文档,再翻一下发现已经有不少人问为什么这是一个undocumented的函数,也就是说Erlang就没想让你去用这个函数,所以文档自然没提供.一般来说undo

Yarn的资源调度与erlang进程调度二三事

Yarn资源调度器 1.Capacity scheduler 设计目的:以队列为单位划分资源,旨在让分布式集群资源被多用户共享,被多application共享,不同队列间可以动态迁移资源,避免资源被单个应用或单个用户独占,提高集群资源吞吐量和利用率. 核心思想:传统多个独立集群各占一组机器资源以备不时之需,拥有各自的管理开销,这通常导致比较差的资源利用率和极大的管理开销,capacityscheduler通过一种弹性组织方式为各队列资源构建一个共同基金,然后根据他们对资源的需求,跨资源队列来共享