zoukankan      html  css  js  c++  java
  • calendar

    模块说明

    • 本模块提供了本地时间、世界时间、星期几的计算和几个时间转换函数
    • local time 考虑了时区和夏令时,Universal time是取0经度的时间,且没有夏令时。反正是搞不明白了!!!
    • UTC(Universal Coordinated Time) 也叫GMT(Greenwich Mean Time),中文世界时间、格林威治时间、国际标准时间
    • local_time/0 和 universal_time/0 同时返回日期和时间,这是为了防止2次调用间跨天了。
      单独返回的date/0和time/0 强烈建议不用

    • 日期遵循公历
    • 日期时间差值计算应采用公历天数和秒数计数的函数,本地时间先转换为世界时间。
    • time_difference/2 不要用
    • 本模块当年第几周的定义遵从ISO8601标准。没读过该标准
    • stdlib文档标记了datetime1970(), 但函数使用了1970年前的日期似乎也可正确。搞不清楚了
    • erlang 从公元0年开始计算
    • erlang:now()  返回的是自1970年1月1日0时0分0秒的秒数元组{MegaSecs,Secs,MicroSecs}
    • 日期和时间来源于erlang:localtime/0  和 erlang:universaltime/0 

    导出函数

    • date_to_gregorian_days(Date) -> Days
      date_to_gregorian_days(Year, Month, Day) -> Days
      返回日期的公历天数
    • datetime_to_gregorian_seconds(DateTime) -> Seconds
      返回日期时间的公历秒数
    • day_of_the_week(Date) -> daynum()
      day_of_the_week(Year, Month, Day) -> daynum()
      返回日期是星期几。1-Monday 2-Tuesday 等等
    • gregorian_days_to_date(Days) -> date()
      公历天数转日期
    • gregorian_seconds_to_datetime(Seconds) -> datetime()
      公历秒数转日期时间
    • is_leap_year(Year) -> boolean()
      是否闰年
    • iso_week_number() -> yearweeknum()    返回 local_time/0 对应日期的第几周
      iso_week_number(Date) -> yearweeknum()  返回Date 对应的第几周
    • last_day_of_the_month(Year, Month) -> LastDay
      某年某月多少天
    • local_time() -> datetime()
      操作系统告知的本地时间
    • local_time_to_universal_time(DateTime1) -> DateTime2
      本地时间转世界时,申明废弃;建议使用如下版本
    • local_time_to_universal_time_dst(DateTime1) -> [DateTime]
      同上,考虑了夏令时。返回[] 对应那些不存在的日期时间,比如夏令时从5时直接进入6时,那么中间的本地时间就没有对应了。

             返回 [DstDateTimeUTC,DateTimeUTC] 从夏令时改回来时,从6时改为5时,本地时间又走了一遍5时到6时,其中DstDateTimeUTC是夏令时起作用中;

             DateTimeUTC是改回来后。这样理解对吧?

             返回[DateTimeUTC] 对应那些一般日期时间

    • now_to_local_time(Now) -> datetime1970()
      erlang:now/0 的秒数元组转本地时间
    • now_to_universal_time(Now) ->datetime1970()
      now_to_datetime(Now) ->datetime1970()
      erlang:now/0的秒数元组转世界时
    • seconds_to_daystime(Seconds) -> {Days, Time}
      秒数转{天数,时间}
    • seconds_to_time(Seconds) -> time()
      限制一天内的秒数[0,86400)转时间
    • time_difference(T1, T2) -> {Days, Time}
      废弃
    • time_to_seconds(Time) -> secs_per_day()
      时间转秒数
    • universal_time() -> datetime()
      世界时
    • universal_time_to_local_time(DateTime) -> datetime()
      时间时转本地时间
    • valid_date(Date) -> boolean()
      valid_date(Year, Month, Day) -> boolean()
      验证是否合法日期
















     

  • 相关阅读:
    vue中的 computed 和 watch 的区别
    mysql8.0 初始化数据库及表名大小写问题
    sql server alwayson 调整数据文件路径
    zabbix 自定义监控 SQL Server
    mysql 创建用户及授权
    mysql 设置从库只读模式
    mysql8.0 主从复制安装及配置
    centos8.0安装mysql8.0
    centos8替换阿里数据源
    npm publish 报错 【you or one of your dependencies are requesting a package version that is forbidden by your security policy】
  • 原文地址:https://www.cnblogs.com/rubyist/p/erlang_stdlib_calendar.html
Copyright © 2011-2022 走看看