ISO 8601 là một cách được quốc tế đồng ý để thể hiện ngày tháng. [YYYY-MM-DD]. ISO 8601 có thể được sử dụng bởi bất kỳ ai muốn sử dụng cách trình bày ngày giờ, UTC và giờ địa phương được tiêu chuẩn hóa với độ lệch thành UTC
Định dạng của ISO 8601 Ngày
Trong Python ISO 8601, ngày được thể hiện ở định dạng
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854967. Ví dụ: ngày 18 tháng 5 năm 2022, được biểu thị là 2022-05-18T11. 40. 22. 519222
Đây
- YYYY. Năm ở định dạng bốn chữ số
- MM. Tháng từ 1-12
- ĐĐ. Ngày từ 1 đến 31
- T. Đó là ký tự phân cách sẽ được in giữa các trường ngày và giờ. Nó là một tham số tùy chọn có giá trị mặc định là “T”
- hộ. Đối với giá trị của phút
- MM. Đối với giá trị phút được chỉ định
- SS. Đối với giá trị được chỉ định của giây
- mmmmmm. Đối với micro giây được chỉ định
Cách nhận ISO 8601 Datetime trong Python
Có thể có các tình huống mà bạn muốn lấy thời gian chuẩn ISO 8601 hiện tại. Ngoài ra, bạn có thể cần chuyển đổi ngày giờ hiện tại sang định dạng ISO 8601. chúng tôi sẽ bao gồm cả hai trường hợp. Các bước dưới đây cho thấy cách chuyển đổi ngày giờ thành ngày ISO 8601 ở định dạng chuỗi trong Python
- Nhập mô-đun ngày giờ
Mô-đun datetime trong Python cung cấp nhiều chức năng khác nhau để tạo và thao tác ngày và giờ. Sử dụng câu lệnh
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.685496
8 để nhập lớpToday Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.685496
9 từ mô-đun ngày giờ - Nhận ngày giờ hiện tại
Nếu bạn muốn lấy ngày giờ hiện tại theo tiêu chuẩn ISO 8601 trước tiên, bạn cần lấy ngày giờ hiện tại bằng cách sử dụng hàm
0. Nếu bạn đã có đối tượng datetime thì có thể bỏ qua bước nàyfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Sử dụng phương thức isoformat[]
Để chuyển đổi datetime sang định dạng ISO 8601, hãy sử dụng phương thức isoformat[]. Nó trả về một chuỗi đại diện cho ngày ở định dạng ISO 8601. chuỗi ISO này chứa ngày, giờ và UTC bù cho múi giờ tương ứng
ví dụ 1. Nhận ngày giờ theo tiêu chuẩn ISO 8601 hiện tại
from datetime import datetime
# get current datetime
today = datetime.now[]
print['Today Datetime:', today]
# Get current ISO 8601 datetime in string format
iso_date = today.isoformat[]
print['ISO DateTime:', iso_date]
đầu ra
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.685496
Tham khảo đoạn mã dưới đây nếu bạn muốn thay đổi dấu phân cách giữa ngày và giờ
from datetime import datetime
iso_date = datetime.now[].isoformat['#']
print[iso_date]
# output
# 2022-05-18#12:43:02.430554
ví dụ 2. Chuyển đổi ngày giờ sang định dạng ISO 8601
Nếu bạn có đối tượng ngày giờ đầu vào, bạn có thể sử dụng ví dụ dưới đây để chuyển đổi nó sang định dạng ISO 8601. Ngoài ra, nếu bạn có datetime ở định dạng chuỗi thì trước tiên hãy chuyển đổi chuỗi thành datetime
from datetime import datetime
dt = datetime[2021, 10, 24, 8, 48, 34, 685496]
print['Input Datetime:', dt]
# convert datetime to ISO date
iso_date = dt.isoformat[]
print['ISO Date:', iso_date]
đầu ra
________số 8Chuyển đổi Ngày giờ với thông tin Múi giờ sang ISO 8601
Múi giờ biểu thị thời gian chuẩn hóa tùy thuộc vào phần nào của thế giới đang được xem xét. Ví dụ: CT [Giờ Trung tâm] ở Bắc và Nam Mỹ chậm hơn 5 hoặc 6 giờ và được biểu thị là UTC-5 hoặc UTC-6 dựa trên Tiết kiệm ánh sáng ban ngày
Trong Python, một đối tượng ngày có thể được đề cập có hoặc không có múi giờ. Dựa vào đó, một đối tượng được gọi là Naive hoặc Aware. Theo mặc định, một đối tượng ngày là ngây thơ. Một đối tượng ngày giờ hoặc thời gian được biết nếu nó giữ giá trị múi giờ. Xem múi giờ trong Python để biết thêm chi tiết
Ví dụ: Hàm
from datetime import datetime
iso_date = datetime.now[].isoformat['#']
print[iso_date]
# output
# 2022-05-18#12:43:02.430554
0 trả về ngày giờ địa phương hiện tại mà không có bất kỳ thông tin múi giờ nào. Sử dụng thư viện pytz, chúng ta có thể chuyển tên múi giờ cho hàm này để lấy ngày giờ hiện tại trong múi giờ đã choTrong ví dụ Python bên dưới, chúng ta sẽ xem cách chuyển đổi ngày giờ với thông tin múi giờ sang định dạng ngày theo tiêu chuẩn ISO 8601
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854960
đầu ra
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854961
Ghi chú. -05. 00 là Độ lệch UTC cho múi giờ Hoa Kỳ/Miền Trung
Nhận chuỗi ngày giờ isoformat hiện tại bao gồm múi giờ mặc định
- Nhận ngày giờ hiện tại bằng hàm
2from datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Tiếp theo, Thêm thông tin múi giờ mặc định vào datetime bằng hàm
3. Múi giờ địa phương hoặc mặc định là thông tin múi giờ của hệ thống của bạnfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Cuối cùng, sử dụng phương thức
4 để lấy chuỗi ngày giờ isoformat hiện tại bao gồm cả múi giờ mặc địnhfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
Ví dụ
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854965
đầu ra
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854966
Ghi chú. +05. 30 là múi giờ Ấn Độ [IST] trên máy của tôi. Bạn sẽ nhận được một kết quả khác tùy thuộc vào múi giờ của hệ thống
UTC đến ISO 8601 trong Python
UTC – Giờ phối hợp quốc tế là tiêu chuẩn thời gian chung trên toàn thế giới. Vì vậy, trong Python, để làm việc với múi giờ mà không gặp bất kỳ sự cố nào, bạn nên sử dụng UTC làm múi giờ cơ sở của mình
Trong ví dụ này, chúng ta sẽ xem cách chuyển đổi ngày UTC thành ngày ISO 8601 trong Python
- Đầu tiên, lấy ngày giờ UTC hiện tại bằng cách nhắc đến thuộc tính
5 trong hàmfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
2from datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Tiếp theo, sử dụng phương pháp
4 chuyển đổi thời gian UTC sang định dạng ISO 8601from datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
Ví dụ
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854960
đầu ra
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854960
Ghi chú. Phần bù ở cuối là +00. 00 là độ lệch UTC tiêu chuẩn
UTC đến ISO 8601 với thông tin múi giờ địa phương mà không cần một phần triệu giây
- Nhập lớp datetime từ mô-đun datetime
- Tiếp theo, lấy ngày giờ hiện tại bằng hàm
2from datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Tiếp theo, sử dụng
3 để thêm thông tin múi giờ địa phương vào đối tượng ngày giờfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
- Cuối cùng, sử dụng phương pháp
4 để chuyển đổi UTC thành ISO 8601 với thông tin múi giờ địa phươngfrom datetime import datetime iso_date = datetime.now[].isoformat['#'] print[iso_date] # output # 2022-05-18#12:43:02.430554
Ví dụ
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854961
đầu ra
Today Datetime: 2022-05-18 12:19:51.685496 ISO DateTime: 2022-05-18T12:19:51.6854962
Ngày giờ địa phương theo ISO 8601 mà không cần micro giây
giờ địa phương là ngày giờ của hệ thống của bạn. Ví dụ: Hàm
from datetime import datetime
dt = datetime[2021, 10, 24, 8, 48, 34, 685496]
print['Input Datetime:', dt]
# convert datetime to ISO date
iso_date = dt.isoformat[]
print['ISO Date:', iso_date]
1] trả về ngày giờ địa phương hiện tại mà không có bất kỳ thông tin múi giờ nàoSử dụng hàm
from datetime import datetime
dt = datetime[2021, 10, 24, 8, 48, 34, 685496]
print['Input Datetime:', dt]
# convert datetime to ISO date
iso_date = dt.isoformat[]
print['ISO Date:', iso_date]
2 của mô-đun datetime để xóa thành phần micro giây khỏi đối tượng datetime. Hãy xem cách chuyển đổi thời gian cục bộ thành ISO 8601 mà không cần thành phần micro giây