有沒有辦法直接回傳 timedelta datetime 或 arrow 的格式而非 dict?
r888800009 opened this issue · comments
Lin, Yong Xiang commented
回傳 dict 沒辦法直接導入 timedelta 等時間類型,使用上不是很方便,比方說下面這種寫法也是沒辦法直接轉成 timedelta
timedelta(**{'day': 0, 'hour': 0, 'minute': 0, 'second': 5})
python 官方的定義是都加了 s,所以如果要轉換的話需要一個個對應
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
至於判斷類別可以透過 isinstance()
比方說
isinstance(timedelta(), timedelta)
感覺這樣子使用上會比較方便?
Artin commented
感谢!这是一个非常好的想法,之前没有考虑到这里。
有沒有辦法直接回傳 timedelta datetime 或 arrow 的格式而非 dict?
暂时的想法是 parse 函数增加一个可选参数,然后返回 timedelta 或者 arrow 格式。
{
'type': 'timedelta',
'timedelta': {
'year': 0,
'month': 0,
'day': 3,
'hour': 0,
'minute': 0,
'second': 0
},
'_timedelta': timedelta(),
'_arrow': Arrow(),
}
但是这样一来又有 timedelta 中关于 year 和 month 的天数的问题,还是有待考虑。
python 官方的定義是都加了 s
可以考虑把当前的 dict 内加 s, 但是这会是一个 breaking change,近期可能不会引入,如果要确定引入的话需要等到下一个大版本。
可以先实现一个函数来帮忙做转化。
以上,这个 issue 还是有待考虑。