NumPy 的 datetime_as_string(~)
方法將日期時間數組轉換為字符串數組,並提供多種格式化方法。
參數
1. arr
| array-like
日期時間數組。
2. unit
| None
或 string
| optional
結果字符串的格式。允許的值如下:
單元 |
說明 |
---|---|
|
該單元成為輸入數組中的最低單元。例如,如果您有 |
|
單位相當於 |
Dateunit |
可以是 |
請注意,對於缺少特定單位的日期,將使用單位一的默認值。例如,指定單位 "D"
(即天)會將 "2020-12"
等日期時間轉換為 "2020-12-01"
。
默認情況下,unit=None
。
3. timezone
| string
| optional
要使用的時區。允許的值如下:
時區 |
說明 |
---|---|
naive |
"naive" 時區是一種不知道時區的時區 - 它隻是一個簡單的日期時間,絕對沒有任何地點上下文。 |
UTC |
協調世界時。 |
local |
考慮您地理位置的時區。 |
默認情況下,timezone="naive"
。請參閱下麵的示例以進行說明。
4. casting
| string
| optional
必須遵守的選角規則。官方文檔沒有對規則的具體細節提供任何解釋,因此這裏我們將嘗試從基礎層麵介紹一些主要規則。
規則 |
說明 |
---|---|
no |
每當執行任何類型的轉換時都會引發錯誤。 |
safe |
當您投射到不太具體的單位(例如從幾天到幾周)時會拋出錯誤。 |
unsafe |
允許任何類型的鑄造。這與 "no" 規則相反。 |
對於那些有更多見解的人,我們很樂意與您交談!
返回值
表示輸入日期時間的 NumPy 字符串數組。
例子
基本用法
datetimes = [np.datetime64("2020-05-30"), np.datetime64("2020-12-25")]
np.datetime_as_string(datetimes)
array(['2020-05-30', '2020-12-25'], dtype='<U28')
更改單位
None
datetimes = [np.datetime64("2020-05"), np.datetime64("2020-12")]
np.datetime_as_string(datetimes, unit=None)
array(['2020-05', '2020-12'], dtype='<U25')
汽車
datetimes = [np.datetime64("2020-05"), np.datetime64("2020-12")]
np.datetime_as_string(datetimes, unit="auto")
array(['2020-05-01', '2020-12-01'], dtype='<U62')
請注意結果字符串如何包含天數,即 unit="auto"
與 unit="D"
(天)相同。
幾個月
datetimes = [np.datetime64("2020-05-30"), np.datetime64("2020-12-25")]
np.datetime_as_string(datetimes, unit="M")
array(['2020-05', '2020-12'], dtype='<U25')
更改時區
幼稚的
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="naive")
array(['2020-12-25T03:30', '2020-12-06T02:50'], dtype='<U35')
UTC
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="UTC")
array(['2020-12-25T03:30Z', '2020-12-06T02:50Z'], dtype='<U35')
請注意末尾有 Z
,表明時區是 UTC。
當地的
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="local")
array(['2020-12-25T11:30+0800', '2020-12-06T10:50+0800'], dtype='<U39')
請注意最後的 +0800,這意味著我當前的位置比 UTC 早 8 小時。
選角規則
不
datetimes = [np.datetime64("2020-05-05")]
np.datetime_as_string(datetimes, unit="M", casting="no")
TypeError: Cannot create a datetime string as units 'M' from a NumPy datetime with units 'D' according to the rule 'no'
這會引發錯誤,因為 "no"
規則不允許任何形式的轉換。
安全的
datetimes = [np.datetime64("2020-05-05")]
np.datetime_as_string(datetimes, unit="M", casting="safe")
TypeError: Cannot create a datetime string as units 'M' from a NumPy datetime with units 'D' according to the rule 'safe'
這會引發錯誤,因為 "safe"
規則不允許轉換為不太具體的單位。
不安全
datetimes = [np.datetime64("2020-05-05"), np.datetime64("2020")]
np.datetime_as_string(datetimes, unit="M", casting="unsafe")
array(['2020-05', '2020-01'], dtype='<U25')
此處,不會拋出任何錯誤,因為 "unsafe"
規則允許任何形式的轉換。
相關用法
- Python NumPy datetime_data方法用法及代碼示例
- Python datetime timetuple()用法及代碼示例
- Python datetime astimezone()用法及代碼示例
- Python datetime.time.fromisoformat用法及代碼示例
- Python datetime timetz()用法及代碼示例
- Python datetime.utcoffset()用法及代碼示例
- Python datetime Timezone構造函數用法及代碼示例
- Python datetime.datetime.fromisoformat用法及代碼示例
- Python datetime isocalendar()用法及代碼示例
- Python datetime轉date用法及代碼示例
- Python datetime.tzinfo()用法及代碼示例
- Python datetime date()用法及代碼示例
- Python datetime.date.isoformat用法及代碼示例
- Python datetime.timetz()用法及代碼示例
- Python datetime.date.replace用法及代碼示例
- Python datetime isoformat()用法及代碼示例
- Python datetime.date.ctime用法及代碼示例
- Python datetime.time.isoformat用法及代碼示例
- Python datetime.datetime.isoformat用法及代碼示例
- Python datetime.timedelta用法及代碼示例
- Python datetime __str__()用法及代碼示例
- Python datetime.date.fromisoformat用法及代碼示例
- Python datetime isoweekday()用法及代碼示例
- Python datetime.tzinfo.fromutc用法及代碼示例
- Python datetime.timedelta()用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | datetime_as_string method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。