我在 pandas 0.16.2 的夏令时更改边界标准化时间戳时发现以下行为:
import pandas as pd
original_midnight = pd.Timestamp('20121104', tz='US/Eastern')
original_midday = pd.Timestamp('20121104T120000', tz='US/Eastern')
str(pd.tslib.normalize_date(original_midday))
`Out[10]:'2012-11-04 00:00:00-05:00'`
str(original_midnight)
`Out[12]:'2012-11-04 00:00:00-04:00'`
我相信标准化时间戳应该与原始_midnight具有相同的时区。
这是一个错误,还是我错过了什么?
implementation只是截断时间。它似乎根本不操纵偏移量,所以我会说不,它不知道时区。
此外,请考虑到这种类型的操作(在许多语言中)往往会掩盖这样一个事实:并非每个本地日期都有午夜。例如,如果时区为 'America/Sao_Paulo'
(巴西),并且日期处于向前过渡的日期(例如 2015-10-18
) ,跳过从 00:00 到 00:59 的时间,这意味着一天的开始实际上是 01:00。如果函数要更新为时区感知,则必须调整时间和偏移量。
我是一名优秀的程序员,十分优秀!