更多的时间!时间是一个向量空间,它本来意味着什么。
mo-times的Python项目详细描述
Date
类
用于时间操作的简化日期和时间类。这个库是为个人和商业应用而设计的,假设每个太阳日有24*60*60秒被认为是准确的See GMT vs UTC below
假设
- 所有时间都是GMT格式的-时区数学有待在人工终结点解决:计算机应该只处理一种类型的时间;没有洞,没有重叠,并且上下文最少。
- single time type-日期、日期时间和时间之间没有区别;time维度中的所有度量值都由一个名为
Date
的类型处理。这对于将时间视为向量空间很重要。 - 标准范围比较-所有时间范围比较都已标准化为
min <= value < max
最小值包含(^ {CD4}}),最大值是唯一的(^ {< CD5> })。
Date
属性
Date()
构造函数
Date()
方法将转换unix时间戳、毫秒时间戳、各种字符串格式和简单的时间公式,以创建gmt时间
now()
静态方法
以毫秒分辨率返回Date
实例(以GMT为单位)。
eod()
静态方法
返回一天的结束:最小的Date
,它大于今天的所有时间点把它想象成明天与now().ceiling(DAY)
相同
today()
静态方法
今天的开始。与now().floor(DAY)
范围(最小、最大、间隔)静态法
返回以min
开头的Dates
的显式列表,每个interval
比上一个多,但现在包括max
用于定义时间域中的分区
floor(duration=None)
方法
此方法通常用于在给定的分辨率(即duration
)下执行日期比较四舍五入到最近的整个持续时间。duration
假设为DAY
(如果未提供)。
format(format="%Y-%m-%d %H:%M:%S")
方法
就像strftime
milli
属性
自epoch起的毫秒数
unix
属性
从epoch开始的秒数
add(duration)
方法
添加一个duration
到获取新的Date
实例的时间未修改self
addDay()
方法
方便方法self.add(DAY)
Duration
类
表示两个Dates
之间的差异。有两种刻度:
DAY
刻度-包括秒、分、小时、天和周YEAR
比例尺-包括月、季度、年和世纪
Duration()
构造函数
按名称、公式、按timespan
或(很少)毫秒数创建新的Duration
floor(interval=None)
方法
四舍五入到最接近的interval
大小
seconds
属性
返回此持续时间内的总秒数(包括部分秒数)(按YEAR
比例给出的估计值)
total_seconds()
方法
与seconds
属性相同
round(interval, decimal=0)
方法
返回给定的interval
位数,舍入到给定的decimal
位数
format(interval, decimal=0)
方法
使用给定的interval
和decimal
舍入返回表示self
的字符串
时间向量空间
Date
和Duration
对象是一维向量空间中的点和向量因此,允许使用+
和-
运算符。还支持与(>
、>=
、<=
、<
)的比较。
GMT与UTC的比较
太阳日是他最受欢迎的计时单位这个图书馆选择GMT(UT1)作为基准时钟,因为它在一个太阳日中的秒数是一致的。UTC的闰秒不一致,使得时间计算变得困难,甚至迫使我们做出迂腐的结论,比如说有些分钟没有60秒幸运的是Python对UTC(datetime.utcnow()
)的实现是错误的,并且实现了格林尼治时间:这是我们使用的。
误差分析
假设我们每6个月需要一个大方的闰秒(过去10年只有4闰秒),那么GMT在181天内(12月到6月,15638400秒)与UTC的偏差高达1秒,这是一个错误率error = 1/15,638,400 = 0.000006395%
。如果我们想把误差称为“噪声”,我们有70db的信噪比。所有能够容忍此级别错误的应用程序都应使用GMT作为其时间基础。