Để phân tích chuỗi thời gian với chữ viết tắt thời gian [
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
4] thành một đối tượng DateTime nhận biết múi giờ:import dateparser # pip install dateparser
pst_dt = dateparser.parse['2018-02-17 16:15:36.519 PST']
# -> datetime.datetime[2018, 2, 17, 16, 15, 36, 519000, tzinfo=]
Để chuyển đổi thời gian sang UTC Timezone:
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
Để in nó ở định dạng mong muốn:
print[utc_dt.isoformat[]] # -> 2018-02-18T00:15:36.519000+00:00
print[utc_dt.strftime['%Y-%m-%dT%H:%M:%S.%fZ']] # -> 2018-02-18T00:15:36.519000Z
Trên Python 2.7 không có
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
5:utc_naive = psd_dt.replace[tzinfo=None] - psd_dt.utcoffset[]
print utc_naive.strftime['%Y-%m-%dT%H:%M:%S.%fZ']
# -> 2018-02-18T00:15:36.519000Z
Lưu ý: Trong trường hợp chung, viết tắt thời gian [chẳng hạn như
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
4] có thể mơ hồ. Xem chuỗi ngày/chuỗi thời gian phân tích với thời gian viết tắt tên trong Python?Trong trường hợp cụ thể của bạn, chuỗi thời gian tương ứng với thời gian UTC duy nhất:
>>> from collections import defaultdict
>>> import datetime as DT
>>> import pytz
>>> naive_dt, tzabbr = DT.datetime[2018, 2, 17, 16, 15, 36, 519000], 'PST'
>>> utc_times = defaultdict[list]
>>> for zone in pytz.all_timezones:
... dt = pytz.timezone[zone].localize[naive_dt, is_dst=None]
... if dt.tzname[] == tzabbr: # same timezone abbreviation
... utc_times[dt.astimezone[pytz.utc]].append[zone]
>>> for utc_dt, timezones in utc_times.items[]:
... print[f'{utc_dt:%c %Z}', *timezones, sep='\n\t']
Sun Feb 18 00:15:36 2018 UTC
America/Dawson
America/Ensenada
America/Los_Angeles
America/Santa_Isabel
America/Tijuana
America/Vancouver
America/Whitehorse
Canada/Pacific
Canada/Yukon
Mexico/BajaNorte
PST8PDT
US/Pacific
US/Pacific-New
Xem Linux chuyển đổi thời gian [cho các múi giờ khác nhau] sang UTC
Cài đặt pytz¶
Tôi đang sử dụng PYTZ, đây là gói định nghĩa múi giờ. Bạn có thể cài đặt nó bằng cách sử dụng dễ dàng cài đặt. Trên Ubuntu, làm điều này:
sudo easy_install --upgrade pytz
Thêm thông tin múi giờ vào một đối tượng DateTime ngây thơ
from datetime import datetime from pytz import timezone date_str = "2009-05-05 22:28:15" datetime_obj = datetime.strptime[date_str, "%Y-%m-%d %H:%M:%S"] datetime_obj_utc = datetime_obj.replace[tzinfo=timezone['UTC']] print datetime_obj_utc.strftime["%Y-%m-%d %H:%M:%S %Z%z"]
Results:
2009-05-05 22:28:15 UTC+0000
Thêm thông tin múi giờ không UTC vào đối tượng DateTime ngây thơ
[Đã thêm 2014-05-28]
Lưu ý:
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
7 không xử lý chính xác thời gian tiết kiệm ánh sáng ban ngày. Cách chính xác là sử dụng import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
8 thay thế. Sử dụng import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
7 là OK khi làm việc với UTC như được hiển thị ở trên vì nó không có thời gian tiết kiệm ánh sáng ban ngày để giải quyết. Xem tài liệu PYTZ.from datetime import datetime from pytz import timezone date_str = "2014-05-28 22:28:15" datetime_obj_naive = datetime.strptime[date_str, "%Y-%m-%d %H:%M:%S"] # Wrong way! datetime_obj_pacific = datetime_obj_naive.replace[tzinfo=timezone['US/Pacific']] print datetime_obj_pacific.strftime["%Y-%m-%d %H:%M:%S %Z%z"] # Right way! datetime_obj_pacific = timezone['US/Pacific'].localize[datetime_obj_naive] print datetime_obj_pacific.strftime["%Y-%m-%d %H:%M:%S %Z%z"]
Results:
2014-05-28 22:28:15 PST-0800 2014-05-28 22:28:15 PDT-0700
Chuyển đổi múi giờ
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
0Results:
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
1Danh sách các múi giờ
Có 559 múi giờ bao gồm trong PYTZ. Đây là cách in các múi giờ của Hoa Kỳ:
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
2Results:
import datetime as DT
utc_dt = pst_dt.astimezone[DT.timezone.utc]
# -> datetime.datetime[2018, 2, 18, 0, 15, 36, 519000, tzinfo=datetime.timezone.utc]
3Xem thêm:¶
- //docs.python.org/l Labrary
- //uswaretech.com/blog/2009/02/undering-datetime-tzinfo-timedelta-timezone-conversions-python/-Thông tin thêm về các đối tượng Tzinfo và DateTime.
Làm thế nào để bạn chuyển đổi PST thành UTC?
Thời gian tiêu chuẩn Thái Bình Dương là 8 giờ sau thời gian phối hợp.8 hours behind Coordinated Universal Time.
Làm thế nào để bạn chuyển đổi sang UTC trong Python?
Khoa học dữ liệu thực tế bằng cách sử dụng Python, bạn có thể sử dụng mô -đun DateTime để chuyển đổi DateTime thành dấu thời gian UTC trong Python.Nếu bạn đã có đối tượng DateTime trong UTC, bạn có thể dấu thời gian [] để có dấu thời gian UTC.Hàm này trả về thời gian kể từ thời đại cho đối tượng DateTime đó.use the datetime module to convert a datetime to a UTC timestamp in Python. If you already have the datetime object in UTC, you can the timestamp[] to get a UTC timestamp. This function returns the time since epoch for that datetime object.
Làm cách nào để chuyển đổi DateTime thành UTC?
Để chuyển đổi thời gian trong múi giờ không cục bộ thành UTC, hãy sử dụng phương thức TimeZoneInfo.ConvertTimeToutC [DateTime, TimeZoneInfo].Để chuyển đổi thời gian mà Offset từ UTC được biết đến, hãy sử dụng phương thức TouniSaltime.Nếu giá trị ngày và thời gian là thời gian mơ hồ, phương pháp này giả định rằng đó là thời gian tiêu chuẩn.use the TimeZoneInfo. ConvertTimeToUtc[DateTime, TimeZoneInfo] method. To convert a time whose offset from UTC is known, use the ToUniversalTime method. If the date and time instance value is an ambiguous time, this method assumes that it is a standard time.
Làm cách nào để thay đổi múi giờ trong Python?
Tạo đối tượng DateTime nhận thức về Timezone..
Cài đặt mô -đun PYTZ nếu không được cài đặt bằng lệnh PIP Install Pytz ..
Sử dụng chức năng pytz.timezone ['cartical_name'] để tạo đối tượng timezone ..
Sử dụng DateTime.Bây giờ [timezone_obj] hoặc datetime.Chức năng DateTime ['TimeZone'] để tạo DateTime hiện tại Aware Aware ..