当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python datetime isoformat()用法及代码示例


Python datetime.isoformat() 方法

datetime.isoformat() 方法用于操作模块 datetime 的 datetime 类的对象。

它使用一个 datetime 类对象并返回一个表示 ISO 8601 格式的日期和时间的字符串:

  • YYYY-MM-DDTHH:MM:SS.ffffff, 如果微秒不为 0
  • YYYY-MM-DDTHH:MM:SS, 如果微秒为 0

如果 datetime 是一个感知对象,则添加一个字符串,它告诉 UTC 偏移量:

  • YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]], 如果微秒不为 0
  • YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]], 如果微秒为 0

日期和时间表示的国际标准是 ISO 8601。它旨在提供一种没有任何歧义的日期和时间表示格式。

模块:

    import datetime

类:

    from datetime import datetime

用法:

    isoformat(sep='T', timespec='auto')

参数:

  • sep: 是一个 one-character 分隔符,放置在结果的日期和时间部分之间。默认值为T
  • timespec: 是要包含的时间的附加组件的数量。它的默认值为auto.如果微秒为 0,则与 'seconds' 相同,否则为微秒。

这两个参数都是可选的。

返回值:

此方法的返回类型是日期和时间的 ISO 8601 格式的字符串。

例:

## importing datetime class
from datetime import datetime
import pytz

## Naive object isoformat() example

x = datetime.today()
print("Normal format:",x)
d = x.isoformat()
print("ISO 8601 format:", d)
print("ISO 8601 format without separator 'T':", x.isoformat(sep=' '))
print()

## Microsecond is not 0 here
x = datetime(2020, 10, 1, 12, 12, 12, 3400)
print("ISO 8601 format:", x.isoformat())
print("ISO format without separator 'T':", x.isoformat(sep=' '))
print()

## Microsecond is 0 here
x = datetime(200,10,12,1,1,1)
print("Date 200/10/12 1:1:1 in ISO 8601 format:", x.isoformat())
print()

## Aware object isoformat example

##Microsecond is 0 here
x = datetime(2020,10,4)
timezone = pytz.timezone("Asia/Tokyo")
x = x.astimezone(timezone)##Adding tzinfo
print("ISO 8601 format for an aware object:", x.isoformat())

## Microsecond is not 0 here
x = datetime(2020,10,4,1,1,1,333)
timezone = pytz.timezone("Asia/Tokyo")
x = x.astimezone(timezone)##Adding tzinfo
print("ISO 8601 format for an aware object:", x.isoformat())

输出

Normal format:2020-05-01 22:52:37.596841
ISO 8601 format:2020-05-01T22:52:37.596841
ISO 8601 format without separator 'T':2020-05-01 22:52:37.596841

ISO 8601 format:2020-10-01T12:12:12.003400
ISO format without separator 'T':2020-10-01 12:12:12.003400

Date 200/10/12 1:1:1 in ISO 8601 format:0200-10-12T01:01:01

ISO 8601 format for an aware object:2020-10-04T09:00:00+09:00
ISO 8601 format for an aware object:2020-10-04T10:01:01.000333+09:00


相关用法


注:本文由纯净天空筛选整理自 Python datetime isoformat() Method with Example。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。