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ỏ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
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
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?