Hướng dẫn how do i convert a date to iso 8601 in python? - làm cách nào để chuyển đổi ngày thành iso 8601 trong python?

73

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Trong Python, làm thế nào tôi có thể chuyển đổi một chuỗi như thế này:

Thu, ngày 16 tháng 12 năm 2010 12:14:05 +0000

đến định dạng ISO 8601, trong khi giữ thời gian?

Xin lưu ý rằng ngày phát hành là chuỗi và đầu ra cũng phải là chuỗi, không phải datetime hoặc một cái gì đó tương tự.

Mặc dù vậy, tôi không có vấn đề gì khi sử dụng thư viện bên thứ ba.

Hướng dẫn how do i convert a date to iso 8601 in python? - làm cách nào để chuyển đổi ngày thành iso 8601 trong python?

Đã hỏi ngày 16 tháng 12 năm 2010 lúc 12:22Dec 16, 2010 at 12:22

Alon Gubkinalon GubkinAlon Gubkin

55.3K52 Huy hiệu vàng189 Huy hiệu bạc285 Huy hiệu Đồng52 gold badges189 silver badges285 bronze badges

1

Sử dụng ngày

import dateutil.parser as parser
text = 'Thu, 16 Dec 2010 12:14:05 +0000'
date = parser.parse(text)
print(date.isoformat())
# 2010-12-16T12:14:05+00:00

Meshy

8.0859 Huy hiệu vàng49 Huy hiệu bạc71 Huy hiệu đồng9 gold badges49 silver badges71 bronze badges

Đã trả lời ngày 16 tháng 12 năm 2010 lúc 12:30Dec 16, 2010 at 12:30

UnutbuUnutbuunutbu

799K172 Huy hiệu vàng1723 Huy hiệu bạc1624 Huy hiệu đồng172 gold badges1723 silver badges1624 bronze badges

1

Gói DateTime sẵn có Python có phương thức xây dựng để chuyển đổi đối tượng DateTime thành isoformat. Đây là một ví dụ:

>>>from datetime import datetime
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S')
>>>date.isoformat()

đầu ra là

'2010-12-16T12:14:05'

Tôi đã viết câu trả lời này chủ yếu cho những người, những người làm việc ở UTC và không cần phải lo lắng về các khu vực thời gian. Bạn có thể loại bỏ 6 ký tự cuối cùng để có được chuỗi đó.

Python 2 không có hỗ trợ thư viện nội bộ rất tốt cho múi giờ, để biết thêm chi tiết và giải pháp, bạn có thể tham khảo câu trả lời này trên StackOverflow, trong đó đề cập đến việc sử dụng các thư viện của bên thứ 3 tương tự như câu trả lời được chấp nhận.

Đã trả lời ngày 22 tháng 4 năm 2016 lúc 5:34Apr 22, 2016 at 5:34

Hướng dẫn how do i convert a date to iso 8601 in python? - làm cách nào để chuyển đổi ngày thành iso 8601 trong python?

3


Tiêu chuẩn ISO 8601 xác định một định dạng được quốc tế công nhận để đại diện cho ngày và thời gian. ISO 8601 là một định dạng ngày và thời gian giúp loại bỏ các hình thức khác nhau trong các quy ước ngày, ngày và thời gian trên toàn thế giới. Để giải quyết sự không chắc chắn này của các định dạng khác nhau, ISO sẽ đặt một định dạng để đại diện cho ngày của Yyyyy-mm-dd.

Ví dụ, ngày 31 tháng 5 năm 2022, được biểu thị là 2022-05-31.

Trong bài viết này, chúng tôi sẽ thảo luận về cách nhận ngày ISO 8601 ở định dạng chuỗi trong Python.

Sử dụng phương thức .isoformat ()

Phương thức .isoformat () trả về một chuỗi các giá trị ngày và thời gian của một đối tượng python datetime.date ở định dạng ISO 8601.isoformat() method returns a string of date and time values of a python datetime.date object in ISO 8601 format.

Cú pháp

Phương thức cú pháp của phương thức .isoformat () như sau.

date.isoformat(sep=’T’,timespec=’auto’)

Where,

  • SEP (Tham số tùy chọn) - Đó là một ký tự phân tách sẽ được in giữa các trường ngày và giờ. − It is a separator character that is to be printed between the date and time fields.

  • TIMEPEC (Tham số tùy chọn) - Đây là định dạng định dạng cho TimesPec. Giá trị mặc định là tự động. − It is the format specifier for timespec. The default value is auto.

Trong phương thức này, chúng tôi nhận được chuỗi DateTime hiện tại bằng cách sử dụng phương thức DateTime.now () trả về ngày và thời gian hiện tại theo định dạng thời gian. Chuỗi này sau đó được chuyển đổi thành định dạng ISO bằng cách sử dụng phương thức .isoforMat ().

Thí dụ

Trong mã ví dụ này, chúng tôi nhận được một ngày ISO 8601 ở định dạng chuỗi bằng phương thức .isoforMat ().

from datetime import datetime current_date = datetime.now() print(current_date.isoformat())

Đầu ra

Đầu ra của mã trên như sau.

2022-05-31T10:29:01.226141

Sử dụng phương thức .strftime ()

Phương thức strftime () được cung cấp bởi mô -đun DateTime trong Python. Ở đây chúng tôi sử dụng phương thức strftime () để chuyển đổi chuỗi DateTime thành DateTime. Nó cũng được sử dụng để chuyển đổi DateTime thành Epoch.

Epoch là điểm khởi đầu của thời gian và phụ thuộc vào nền tảng. Epoch là ngày 1 tháng 1 năm 1970, 00:00:00 (UTC) trên các hệ thống Windows và hầu hết các hệ thống UNIX và các giây nhảy không được bao gồm trong thời gian tính bằng giây kể từ kỷ nguyên. Chúng tôi sử dụng Time.gmtime (0) để có được kỷ nguyên trên một nền tảng nhất định.

Cú pháp

Phương thức cú pháp của phương thức .isoformat () như sau.

date.strftime(format)

SEP (Tham số tùy chọn) - Đó là một ký tự phân tách sẽ được in giữa các trường ngày và giờ.format is used to specify the required format of the output.

TIMEPEC (Tham số tùy chọn) - Đây là định dạng định dạng cho TimesPec. Giá trị mặc định là tự động.

Thí dụ

Trong mã ví dụ này, chúng tôi nhận được một ngày ISO 8601 ở định dạng chuỗi bằng phương thức .isoforMat ().

from datetime import datetime current_date = datetime.now() print(current_date.strftime('%Y-%m-%dT%H:%M:%S.%f%z'))

Đầu ra

Đầu ra của mã trên như sau.

2022-09-05T10:35:08.217174

Hướng dẫn how do i convert a date to iso 8601 in python? - làm cách nào để chuyển đổi ngày thành iso 8601 trong python?

Sử dụng phương thức .strftime ()

  • Phương thức strftime () được cung cấp bởi mô -đun DateTime trong Python. Ở đây chúng tôi sử dụng phương thức strftime () để chuyển đổi chuỗi DateTime thành DateTime. Nó cũng được sử dụng để chuyển đổi DateTime thành Epoch.
  • Epoch là điểm khởi đầu của thời gian và phụ thuộc vào nền tảng. Epoch là ngày 1 tháng 1 năm 1970, 00:00:00 (UTC) trên các hệ thống Windows và hầu hết các hệ thống UNIX và các giây nhảy không được bao gồm trong thời gian tính bằng giây kể từ kỷ nguyên. Chúng tôi sử dụng Time.gmtime (0) để có được kỷ nguyên trên một nền tảng nhất định.
  • Cú pháp của strftime () được mô tả dưới đây.
  • Trong đó, định dạng được sử dụng để chỉ định định dạng cần thiết của đầu ra.
  • Trong phương thức này, chúng tôi nhận được ngày và thời gian hiện tại từ CPU cục bộ bằng cách sử dụng phương thức DateTime.now (). Chuỗi này được chuyển đổi thành chuỗi định dạng ISO bằng cách sử dụng phương thức .strftime (). Ở đây như chúng ta biết rằng định dạng ISO là yyyy-mm-dd, vì vậy chúng tôi chuyển đổi nó thành định dạng này bằng cách sử dụng mã định dạng sau- .
  • Sau đây là mã ví dụ, đến ngày ISO ở định dạng chuỗi bằng phương thức .strftime ().
  • Cập nhật vào ngày 08 tháng 9 năm 2022 07:14:41
  • Câu hỏi và câu trả lời liên quan
  • Python Pandas - Định dạng Timedelta là ISO 8601
  • Hiển thị Ngày tiêu chuẩn ISO 8601 trong Java
  • Làm thế nào để chuyển đổi chuỗi ISO 8601 cho đến ngày/thời gian đối tượng trong Android?
  • Làm thế nào để chuyển đổi chuỗi ISO 8601 cho đến ngày/thời gian trong Android bằng cách sử dụng Kotlin?
  • Làm cách nào để định dạng một chuỗi bằng cách sử dụng từ điển trong Python 3?
  • Làm cách nào để có được ngày hiện tại trong JavaScript?
  • Làm thế nào để định dạng chuỗi ngày trong PowerShell?
  • Làm cách nào để có được ngày và giờ hiện tại trong JavaScript?

Làm cách nào để chuyển đổi ngày thành ISO 8601?

Phương thức toisostring () được sử dụng để chuyển đổi nội dung của đối tượng ngày đã cho thành một chuỗi ở định dạng ISO (ISO 8601), tức là ở dạng (yyyy-mm-ddthh: mm: ss. : SS. SSSZ). Đối tượng ngày được tạo bằng hàm tạo ngày (). is used to convert the given date object's contents into a string in ISO format (ISO 8601) i.e, in the form of (YYYY-MM-DDTHH:mm:ss. sssZ or ±YYYYYY-MM-DDTHH:mm:ss. sssZ). The date object is created using date() constructor.

Làm cách nào để chuyển đổi một ngày trong Python?

Đối với điều này, chúng tôi sẽ sử dụng phương thức Strptime () và mô -đun pandas.Phương thức này được sử dụng để tạo một đối tượng DateTime từ một chuỗi.Sau đó, chúng tôi sẽ trích xuất ngày từ đối tượng DateTime bằng hàm ngày () và dt.Ngày từ Pandas ở Python.use the strptime() method and Pandas module. This method is used to create a DateTime object from a string. Then we will extract the date from the DateTime object using the date() function and dt. date from Pandas in Python.

Định dạng ISO là gì trong Python?

Hàm isoforMat () được sử dụng để trả về một chuỗi ngày, thời gian và độ lệch UTC cho múi giờ tương ứng ở định dạng ISO 8601.Định dạng ISO 8601 tiêu chuẩn là tất cả các định dạng ngày cho lịch Gregorian.ISO 8601 format. The standard ISO 8601 format is all about date formats for the Gregorian calendar.

ISO 8601 là múi giờ nào?

Thời gian tọa độ phổ quát là thời gian tại không có kinh tuyến, gần Greenwich, Anh.UTC là một giá trị DateTime sử dụng hình thức cơ bản ISO 8601 YYYYMMDDT HHMMSS+|-HHMM hoặc ISO 8601 Mẫu mở rộng YYYY-MM-DDT HH: MM: SS+|-HH: MM. is the time at the zero meridian, near Greenwich, England. UTC is a datetime value that uses the ISO 8601 basic form yyyymmddT hhmmss+|– hhmm or the ISO 8601 extended form yyyy-mm-ddT hh:mm:ss+|– hh:mm.