标准日期和时间格式简介
不同的日期时间格式在不同的领域有着广泛的应用。例如,UNIX时间戳
在编程和数据库中广泛使用,因为它们可以简单地表示为一个整数;ISO 8601
和 RFC 3339
格式常用于网络协议和API接口,因为它们具有很好的可读性和一致性。
了解不同的日期时间格式并掌握其在不同场景下的应用,对于计算机科学、软件工程以及数据分析等领域的专业人士来说都是非常必要的。
w3.org - Date and Time Formats
ISO 8601
ISO8601 是国际标准化组织制定的日期和时间表示法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。最新为第三版ISO8601:2004,第一版为ISO8601:1988,第二版为ISO8601:2000。
它的通用形式为 YYYY-MM-DDThh:mm:ss
或 YYYY-MM-DDThh:mm:ss.sssZ
。
YYYY
代表四位数年份,MM
代表月份,DD
代表天数,T
作为 日期和时间的分隔符
,HH 代表小时,mm 代表分钟,ss.sss
代表秒和毫秒,Z 代表时区。
示例:
2021-12-31T23:59:59
1987-03-25T08:15:30+08:00
1987-03-25T08:15:30Z
1987-03-24T16:00:00.000Z
代码:
from datetime import datetime
now = datetime.now()
print(now.isoformat())
RFC 3339
RFC 3339 定义了日期和时间的表示形式,主要用于互联网协议和标准中。它是 ISO 8601
的一个子集,并做了一些具体化的规定。
例: 1985-04-12T23:20:50.52Z
表示UTC时间1985年4月12日23时20分50.52秒。
What's the difference between ISO 8601 and RFC 3339 Date Formats?
Go语言支持的标准日期和时间格式
在Go语言的源码包 src/time/format.go
有定义了常见的时间格式:
const (
Layout = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)
日期时间表示格式大全: ISO 8601、RFC、时间戳、Excel... https://blog.51cto.com/lilongsy/6193015
常用日期时间格式(日期格式)介绍、文件日期时间(文件名日期时间)(ISO 8601、UNIX时间戳、RFC 3339、ANSI C的asctime()样式、年月日时分秒格式) https://blog.csdn.net/Dontla/article/details/133104392