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的解释如下:
If you do not need the return value to be unique and monotonically increasing, use os:timestamp/0 instead to avoid some overhead.
The difference is that this function returns what the operating system thinks (a.k.a. the wall clock time) without any attempts at time correction. The result of two different calls to this function is not guaranteed to be different.
大致的意思是:erlang:timestamp()获取到的时间更接近于操作系统时间,erlang:now()每次获取都会生成唯一的时间,看来erlang:now()在实现上对时间多做了一个校正,相对erlang:timestamp()有点失真,同时也会有多余的开销。但是erlang:now()每次都生成唯一的值,有时候对我们来说也是一大利好的
获取当前时间戳
timestamp() ->
{M, S, _} = os:timestamp(),
M * 1000000 + S.
获取当前时间
% 本地时间
local_time() ->
calendar:local_time(). % 世界时间
world_time() ->
calendar:universal_time().
获取年月日,时分秒
1> {{Year, Month, Day}, {Hour, Minite, Second}} = calendar:local_time().
{{2013,11,13},{20,10,10}}
2> Day.
13
3> Second.
10
时间转换
% 秒转时间
11> calendar:seconds_to_daystime(86000).
{0,{23,53,20}}
12> calendar:seconds_to_daystime(86400).
{1,{0,0,0}}
13> calendar:seconds_to_daystime(1086400).
{12,{13,46,40}} % 时间转秒
14> calendar:time_to_seconds({23,53,20}).
86000
时间与时间戳的转换
% 时间转时间戳,格式:{{2013,11,13}, {18,0,0}}
datetime_to_timestamp(DateTime) ->
calendar:datetime_to_gregorian_seconds(DateTime) -
calendar:datetime_to_gregorian_seconds({{1970,1,1}, {0,0,0}}). % 时间戳转时间
timestamp_to_datetime(Timestamp) ->
calendar:gregorian_seconds_to_datetime(Timestamp +
calendar:datetime_to_gregorian_seconds({{1970,1,1}, {0,0,0}})).
时间格式化
-module(print_time).
-export([format_utc_timestamp/0]).
format_utc_timestamp() ->
TS = {_,_,Micro} = os:timestamp(),
{{Year,Month,Day},{Hour,Minute,Second}} =
calendar:now_to_universal_time(TS),
Mstr = element(Month,{"Jan","Feb","Mar","Apr","May","Jun","Jul",
"Aug","Sep","Oct","Nov","Dec"}),
io_lib:format("~2w ~s ~4w ~2w:~2..0w:~2..0w.~6..0w",
[Day,Mstr,Year,Hour,Minute,Second,Micro]).
编译这个模式,运行如下:
1> io:format("~s~n",[print_time:format_utc_timestamp()]).
29 Apr 2009 9:55:30.051711
Erlang 日期和时间处理、时间戳转换的更多相关文章
- (原创)lua日期、时间、时间戳的计算和转换
----------------------------------------------日期与时间 print("当前时间戳:") local nowTime = os.tim ...
- python3 进行字符串、日期、时间、时间戳相关转换
1.字符串转换成时间戳 2. 日期转换成时间戳
- JavaScript 时间与时间戳转换
一.获取yyyy-MM-dd hh:mm:ss 格式的时间 function getdate(timeStamp) { if (timeStamp) { var now = new Date(time ...
- Js获取当前的日期和时间以及时间戳转化为时间
/** *获取当前时间 *format=1精确到天 *format=2精确到分 */ function getCurrentDate(format) { var now = new Date(); v ...
- 【python-时间戳】时间与时间戳之间的转换
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...
- python 时间与时间戳之间的转换
https://blog.csdn.net/kl28978113/article/details/79271518 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 ...
- python 时间和时间戳的转换
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...
- python—时间与时间戳之间的转换
python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 ...
- SQL记录-PLSQL日期与时间
PL/SQL日期及时间 PL/SQL提供两个日期和时间相关的数据类型: 日期时间(Datetime)数据类型 间隔数据类型 datetime数据类型有: DATE TIMESTAMP TIMESTAM ...
随机推荐
- R语言-方差分析
方差分析指的是不同变量之间互相影响从而导致结果的变化 1.单因素方差分析: 案例:50名患者接受降低胆固醇治疗的药物,其中三种治疗条件使用药物相同(20mg一天一次,10mg一天两次,5mg一天四次) ...
- JS实现拖拽小案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 关于CSDN2013博客之星的一些看法
最近一个周,最火的话题当然要数CSDN2013博客之星拉票了. 实话实说,从12月14日开始,我连续5天拉票. 通过QQ群.QQ好友.CSDN文章.给CSDN粉丝发私信等多种方式拉票,真是累死我了. ...
- Java Web学习总结(5)——HttpServletResponse对象详解
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: package gacl.r ...
- 10559 - Blocks(方块消除|DP)
该题乍一看和矩阵链乘非常类似,但是有一个不同之处就是该题能够拼接 . 为了达到这个目的.我们不得不拓展维度d[i][j][k].用一个k表示最右边拼接了k个和a[j]同样颜色的方块. 问题的关键在 ...
- Python 实用第三方库
1. youtube 视频下载 使用:you-get pip install you-get you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
- Loadrunner11--输入license后提示违反许可证安全,禁止操作
安装中文补丁包后,重新把mlr5lprg.dll.lm70.dll覆盖LR11安装目录下“bin”文件夹下mlr5lprg.dll.lm70.dll.运行deletelicense.exe.重新用管理 ...
- amazeui学习笔记--js插件(UI增强2)--按钮交互Button
amazeui学习笔记--js插件(UI增强2)--按钮交互Button 一.总结 1.按钮loading状态: <button type="button" class=&q ...
- [Angular2 Router] Preload lzay loading modules
From router v3.1.0, we have preloading system with router. PreloadAllModules After the init module l ...
- thinkphp自动完成、软删除 和时间戳
thinkphp自动完成.软删除 和时间戳 一.总结 自动完成:没有手动赋值的情况下进行手动处理 软删除:实现假删除,可以进行恢复 时间戳:系统支持自动写入创建和更新的时间戳字段 二.thinkphp ...