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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。