热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获取Elixir的当前日期和时间

如何解决《获取Elixir的当前日期和时间》经验,为你挑选了8个好方法。

这似乎是一个非常愚蠢的问题,但是如何获得并显示Elixir中的当前日期或时间?我试过浏览文档但找不到任何东西.我需要使用Erlang功能吗?



1> bitwalker..:

更具体地回答您的问题(尽管我非常感谢Onorio建议使用Timex!),您可以使用:calendar.universal_time()或从Erlang标准库中获取当前日期和时间:calendar.local_time().datetimecalendar模块中使用Erlang的类型有许多有用的函数,但是它们有些限制,并且没有为解析或格式化日期提供任何东西,这是Timex的用武之地.



2> Jimmar..:

您可以使用DateTime.utc_now/0获取UTC DateTime.


这是Elixir 1.3的正确答案

3> TalkLittle..:

来自Erlang 19.1:

:os.system_time(:millisecond)

来自Erlang 18:

:os.system_time(:milli_seconds)

提供当前UNIX时间戳UTC.

感谢@HenrikN链接博客文章http://michal.muskala.eu/2015/07/30/unix-timestamps-in-elixir.html



4> Sheharyar..:

NaiveDateTime

如果您不关心时区并且只想要纯日期和时间,请使用NaiveDateTime:

NaiveDateTime.utc_now
# => ~N[2017-11-30 20:49:54.660724]

约会时间

如果您还需要时区详细信息,请使用DateTime,这也将返回时区名称,UTC偏移量,STD偏移量和时区缩写等内容:

DateTime.utc_now
# => %DateTime{calendar: Calendar.ISO, day: 30, hour: 20, microsecond: {667345, 6}, minute: 51, month: 11, second: 58, std_offset: 0, time_zone: "Etc/UTC", utc_offset: 0, year: 2017, zone_abbr: "UTC"}

然后,您还可以调用这些模块to_date/1to_time/1从日期时间结构中获取特定的日期和时间值.



5> Onorio Caten..:

我认为你最好的选择是使用Paul Schoenfelder(又名BitWalker)的时间码库来制作Elixir.lib就在这里:https://github.com/bitwalker/timex你可以从hex.pm https://hex.pm/packages/timex获取软件包.Paul很好地解释了如何在该github repo的自述页面上使用该库.

您可以调用本机Erlang库,但我认为Paul的lib在处理Elixir时更胜一筹.


感谢Onorio的推荐!对于任何阅读本文的人,我都非常愿意参与,这样我们就可以让Timex成为Elixir中日期/时间的图书馆,也许有一天将它合并到Elixir标准库中,如果它应该达到标准.如果您有兴趣帮助,请向我发送消息或潜入GitHub上的问题跟踪器并发送拉动请求!

6> Mark Reed..:

这取决于你想要的格式.

您可以使用Elixir的Erlang标准库中的任何函数.传统上,您可以使用该now/0功能获得时间:

iex(1)> :erlang.now
{1487, 549978, 29683}

这代表time_t1,487,549,978.29683,这是2017年2月20日星期一午夜UTC之后19分38.29683秒.

但是,由于Erlang/OTP 18,该函数已被弃用; 其中一个原因是Erlang保证每次调用都会增加返回值.如果在机器上的紧密循环中调用它足够快,每微秒调用一次以上,则返回的时间戳将提前实时.

替换是一种具有更高精度和控制的API.这个新API的主要接口是os:system_time/0函数,它在系统定义的单元中返回纪元时间:

iex(2)> :os.system_time
1487550102372148000

不过,您可以申请特定单位system_time/1:

iex(3)> :os.system_time(:millisecond)
1487549663928

自Elixir 1.2以来,这些功能也可以在本机System模块中使用:

iex(4)> System.system_time(:second)
1487549711

对于更友好但仍然是Elixir原生的界面,使用该calendar模块,它将为您提供元组:

iex(5)> :calendar.universal_time
{{2017, 2, 20}, {0, 26, 47}}

从1.3开始,Elixir也有自己的模块来操作日期和时间:DateDateTime.您可以使用其功能来获取当前日期或时间,如下所示:

iex(6)> Date.utc_today
~D[2017-02-20]
iex(7)> DateTime.utc_now
#DateTime<2017-02-20 00:27:51.776208Z>



7> G Amini..:

您也可以使用:os.timestamp\0,{megaseconds, seconds, microseconds}从UTC 返回.:os.timestamp |> :calendar.now_to_datetime现在将以erlang标准{{YYYY, MM, DD}, {HH, MM, SS}}格式给你.


并将其转换为POSIX/UNIX时间戳:http://michal.muskala.eu/2015/07/30/unix-timestamps-in-elixir.html

8> Lau..:

如果您需要处理夏令时或时区,我为此专门制作了一个库:Calendar。

要获取当前时间,您可以使用例如Calendar.DateTime.now("America/Los_Angeles")洛杉矶Calendar.DateTime.now_utc的当前时间或UTC的当前时间。


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • JVM:33 如何查看JVM的Full GC日志
    1.示例代码packagecom.webcode;publicclassDemo4{publicstaticvoidmain(String[]args){byte[]arr ... [详细]
author-avatar
吟伶逸慧喜靖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有