Julia 日期和时间.pdfVIP

  • 450
  • 0
  • 约9.56千字
  • 约 10页
  • 2017-07-26 发布于河北
  • 举报
Julia 日期和时间.pdf

Julia ⽇期和时间 ⽇期和时间 Dates 模块提供了两种关于时间的数据类型: Date 和 DateTime, 精度分别为天和毫 秒, 都是抽象数据类型 TimeType 的⼦类型. 使 两种数据类型的原因很简单: 某些操 作本⾝很简单, ⽆论是从代码上看还是逻辑上, 使 ⾼精度的数据类型是完全没有必要 的. 例如, Date 只精确到天 (也就是说, 没有⼩时, 分钟或者秒), 所以使 时就不需要考 虑时区, 夏令时和闰秒. Date 和 DateTime 都不过是 Int64 的简单封装, 仅有的⼀个成员变量 instant 实 际上的类型是 UTInstant{P}, 代表的是基于世界时的机器时间 [1]. Datetime 类型 是 不考虑时区 的 (根据 Python 的讲法), 或者说是 Java 8 ⾥⾯的 本地时间. 额外的时间 ⽇期操作可以通过 Timezones.jl 扩展包来获取, 其中的数据来⾃ Olsen Time Zone Database . Date 和 DateTime 遵循 SO 860 1 标准. 值得注意的⼀点是, SO 860 1 关于 公元前⽇期的处理⽐较特殊. 简单来说, 公元前的最后⼀天是公元前 1-12-31, 接下来第 ⼆天是公元 1-1-1, 所以是没有公元 0 年存在的. ⽽ SO 标准认定, 公元前 1 年是 0 年, 所以 0000-12-21 是 0001-01-01 的前⼀天, -0001 是公元前 2 年, -0003 是公元 前 3 年, 等等. [1] ⼀般来说有两种常 的时间表⽰法, ⼀种是基于地球的⾃转状态 (地球转⼀整圈 = 1 天), 另⼀种基于 S 秒 ( 固定的常量) . 这两种表⽰⽅法是不⼀样的. 试想⼀下, 因为地球 ⾃转, 基于世界时的的秒可能是不等长的. 但总得来说, 基于世界时的 Date 和 DateTime 是⼀种简化的⽅案, 例如闰秒的情况不需要考虑. 这种表⽰时间的⽅案的正 式名称为世界时 . 这意味着, 每⼀分钟有 60 秒, 每⼀天有 60 ⼩时, 这样使得关于时间的 计算更⾃然, 简单. 构造函数 Date 和 DateType 可以通过整数或者 Period 构造, 通过直接传⼊, 或者作为与特定 时间的差值: julia DateTime 2013) 2013-01-01T00:00:00 julia DateTime 2013,7) 2013-07-01T00:00:00 julia DateTime 2013,7,1) 2013-07-01T00:00:00 julia DateTime 2013,7,1,12) 2013-07-01T12:00:00 julia DateTime 2013,7,1,12,30) 2013-07-01T12:30:00 julia DateTime 2013,7,1,12,30,59) 2013-07-01T12:30:59 julia DateTime 2013,7,1,12,30,59,1) 2013-07-01T12:30:59.001 julia Date 2013) 2013-01-01 julia Date 2013,7) 2013-07-01 julia Date 2013,7,1) 2013-07-01 julia Date Dates.Year 2013),Dates.Month 7),Dates.Day 1)) 2013-07-01 julia Date Dates.Month 7),Dates.Year 2013)) 2013-07-01 Date 和 DateTime 解析是通过格式化的字符串实现的. 格式化的字符串是指 分隔 的 或者 固定宽度 的 字符段 来表⽰⼀段时间, 然后传递给 Date 或者 DateTime 的构 造函数. 使 分隔的字符段⽅法, 需要显⽰指明分隔符, 所以 y-m-d 告诉解析器第⼀个和第 ⼆个字符段中间有⼀个 -, 例如 2014-07-16, y, m 和 d 字符告诉解析器每个字符段 的含义. 固定宽度字符段是使 固定宽度的字符串来表⽰时间. 所以 yyyymmdd 相对应的时 间字符串为 同时字符表⽰的⽉份也可以被解析, 通过使 u 和 U, 分别是⽉份的简

文档评论(0)

1亿VIP精品文档

相关文档