Tôi cần tạo một chuỗi thời gian phù hợp với định dạng ISO
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
1. Các phương thức lớp >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
2 và >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
3 gần như làm những gì tôi muốn.>>> import datetime
>>> #time adjusted for current timezone
>>> datetime.datetime.now[].isoformat[]
'2010-08-03T03:00:00.000000'
>>> #unadjusted UTC time
>>> datetime.datetime.utcnow[].isoformat[]
'2010-08-03T10:00:00.000000'
>>>
>>> #How can I do this?
>>> datetime.datetime.magic[]
'2010-08-03T10:00:00.000000-07:00'
Danny Varod
16.8K5 Huy hiệu vàng69 Huy hiệu bạc108 Huy hiệu Đồng5 gold badges69 silver badges108 bronze badges
Hỏi ngày 3 tháng 8 năm 2010 lúc 23:13Aug 3, 2010 at 23:13
deft_codedeft_codedeft_code
55.6K28 Huy hiệu vàng140 Huy hiệu bạc222 Huy hiệu đồng28 gold badges140 silver badges222 bronze badges
Để có được thời gian hiện tại trong UTC trong Python 3.2+:
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
Để có được thời gian địa phương trong Python 3.3+:
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].astimezone[].isoformat[]
'2015-01-27T06:59:17.125448+01:00'
Giải thích:
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
4 tạo ra một đối tượng Awayzone Aware >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
5 trong thời gian UTC. >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
6 Sau đó thay đổi múi giờ của đối tượng >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
5, thành múi giờ của hệ thống nếu được gọi không có đối số. Timezone Aware >>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
5 Các đối tượng sau đó tự động tạo định dạng ISO chính xác.
Felk
7.2902 Huy hiệu vàng36 Huy hiệu bạc60 Huy hiệu Đồng2 gold badges36 silver badges60 bronze badges
Đã trả lời ngày 27 tháng 1 năm 2015 lúc 5:58Jan 27, 2015 at 5:58
4
Bạn cần làm cho các đối tượng DateTime của bạn nhận thức được. Từ tài liệu DateTime:
Có hai loại đối tượng ngày và thời gian: Từ Naive và và nhận thức. Sự khác biệt này đề cập đến việc đối tượng có bất kỳ khái niệm về múi giờ, thời gian tiết kiệm ánh sáng ban ngày hay loại điều chỉnh thời gian chính trị hoặc thuật toán khác. Cho dù một đối tượng DateTime ngây thơ đại diện cho thời gian phối hợp [UTC], thời gian địa phương hoặc thời gian trong một số múi giờ khác hoàn toàn tùy thuộc vào chương trình, giống như nó lên chương trình cho dù một số cụ thể đại diện cho mét, dặm hay khối lượng. Các đối tượng Datetime ngây thơ rất dễ hiểu và làm việc với, với chi phí bỏ qua một số khía cạnh của thực tế.
Khi bạn có một đối tượng DateTime nhận thức, bạn có thể sử dụng isoformat [] và nhận đầu ra bạn cần.
Để làm cho các đối tượng DateTime của bạn nhận thức được, bạn sẽ cần phải phân lớp TZINFO, như ví dụ thứ hai ở đây hoặc đơn giản hơn - sử dụng một gói làm cho bạn, như Pytz hoặc Python -dateutil
Sử dụng PYTZ, điều này sẽ giống như:
import datetime, pytz
datetime.datetime.now[pytz.timezone['US/Central']].isoformat[]
Bạn cũng có thể kiểm soát định dạng đầu ra, nếu bạn sử dụng Strftime với lệnh '%Z' như
datetime.datetime.now[pytz.timezone['US/Central']].strftime['%Y-%m-%dT%H:%M:%S.%f%z']
Đã trả lời ngày 4 tháng 8 năm 2010 lúc 0:05Aug 4, 2010 at 0:05
Ofri Ravivofri RavivOfri Raviv
23.8K3 Huy hiệu vàng54 Huy hiệu bạc55 Huy hiệu Đồng3 gold badges54 silver badges55 bronze badges
7
Với mũi tên:
>>> import arrow
>>> arrow.now[].isoformat[]
'2015-04-17T06:36:49.463207-05:00'
>>> arrow.utcnow[].isoformat[]
'2015-04-17T11:37:17.042330+00:00'
Đã trả lời ngày 17 tháng 4 năm 2015 lúc 11:45Apr 17, 2015 at 11:45
Wes Turnerwes TurnerWes Turner
1.10112 Huy hiệu bạc14 Huy hiệu đồng12 silver badges14 bronze badges
0
Bạn có thể làm điều đó trong Python 2.7+ với
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
9 [được đặt trên Mac theo mặc định]:>>> from datetime import datetime
>>> from dateutil.tz import tzlocal
>>> datetime.now[tzlocal[]].isoformat[]
'2016-10-22T12:45:45.353489-03:00'
Hoặc bạn nếu bạn muốn chuyển đổi từ một chuỗi được lưu trữ đã tồn tại:
>>> from datetime import datetime
>>> from dateutil.tz import tzlocal
>>> from dateutil.parser import parse
>>> parse["2016-10-21T16:33:27.696173"].replace[tzinfo=tzlocal[]].isoformat[]
'2016-10-21T16:33:27.696173-03:00' >> parse["2016-01-21T16:33:27.696173"].replace[tzinfo=tzlocal[]].isoformat[]
'2016-01-21T16:33:27.696173-04:00' >> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].astimezone[].isoformat[]
'2015-01-27T06:59:17.125448+01:00'
0 giữa ngày và giờ. Và nếu bạn không muốn micro giây.Python
pip3 install pytz # needed!
python3
>>> import datetime
>>> import pytz
>>> datetime.datetime.now[pytz.timezone['Europe/Berlin']].isoformat['T', 'seconds']
'2020-11-09T18:23:28+01:00'
Được thử nghiệm trên Ubuntu 18.04 và Python 3.6.9.
Python> = 3.9
pip3 install tzdata # only on Windows needed!
py -3
>>> import datetime
>>> import zoneinfo
>>> datetime.datetime.now[zoneinfo.ZoneInfo['Europe/Berlin']].isoformat['T', 'seconds']
'2020-11-09T18:39:36+01:00'
Được thử nghiệm trên Windows 10 và Python 3.9.0.
Đã trả lời ngày 9 tháng 11 năm 2020 lúc 17:55Nov 9, 2020 at 17:55
Qräbnöqräbnöqräbnö
2.46626 Huy hiệu bạc37 Huy hiệu đồng26 silver badges37 bronze badges
Một cái gì đó giống như ví dụ sau. Lưu ý Tôi đang ở miền đông Australia [UTC + 10 giờ vào lúc này].
>>> from datetime import datetime, timezone
>>> datetime.now[timezone.utc].isoformat[]
'2015-01-27T05:57:31.399861+00:00'
0Đã trả lời ngày 3 tháng 8 năm 2010 lúc 23:44Aug 3, 2010 at 23:44
John Machinjohn MachinJohn Machin
79,8K11 Huy hiệu vàng138 Huy hiệu bạc185 Huy hiệu đồng11 gold badges138 silver badges185 bronze badges
4