Hướng dẫn python datetime format with timezone - định dạng ngày giờ trong python với múi giờ

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc Datetime module

    Bàn luận

    Điều kiện tiên quyết: Mô -đun DateTime

    Trong bài viết này, chúng tôi sẽ tìm hiểu cách lấy đối tượng DateTime từ chuỗi thời gian bằng Python.datetime.strptime(date_string, format)

    Để chuyển đổi chuỗi thời gian thành đối tượng DateTime, DateTime.strptime () hàm của mô -đun DateTime được sử dụng. Hàm này trả về đối tượng DateTime. & NBSP;

    • Cú pháp: DateTime.strptime (Date_String, Format) : Specified time string containing of which datetime object is required. **Required
    • Thông số : : Abbreviation format of date_string

    Date_String: Chuỗi thời gian được chỉ định chứa đối tượng DateTime là bắt buộc. **Yêu cầu Returns the datetime object of given date_string

    Định dạng: Định dạng viết tắt của DATE_STRING

    Trả về: Trả về đối tượng DateTime của Date_String đã choDanh sách định dạng có thể chấp nhận có thể được chuyển cho Strptime ():Chỉ thị
    NghĩaĐịnh dạng đầu ra%Y
    Tên viết tắt tên ngày trong tuần.Mặt trời, mon,…, sat%m
    Tháng dưới dạng số thập phân bằng không.01, 02,…, 12%b
    Tháng là tên địa phương viết tắt tên.Jan, tháng 2,…, tháng 12%d
    Ngày trong tháng dưới dạng số thập phân số không.01, 02,…, 31%H
    Giờ (đồng hồ 24 giờ) dưới dạng số thập phân số không. & Nbsp;00, 01,…, 23%m
    Tháng dưới dạng số thập phân bằng không.01, 02,…, 12%b
    Tháng là tên địa phương viết tắt tên.Jan, tháng 2,…, tháng 12%b
    Tháng là tên địa phương viết tắt tên.Jan, tháng 2,…, tháng 12%d
    Ngày trong tháng dưới dạng số thập phân số không.01, 02,…, 31%H
    Giờ (đồng hồ 24 giờ) dưới dạng số thập phân số không. & Nbsp;00, 01,…, 23%TÔI

    Giờ (đồng hồ 12 giờ) là một số thập phân bằng không. Converting datetime string to datetime

    Python3

    %M

    Phút như một số thập phân bằng không.

    print

    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    0
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    1
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    2

    print

    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    4

    print

    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    0
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    7
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    8
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    9
    >>> import iso8601
    >>> iso8601.parse_date('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=)
    
    0

    00, 01,…, 59

    >>> import iso8601
    >>> iso8601.parse_date('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=)
    
    4
    >>> import iso8601
    >>> iso8601.parse_date('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=)
    
    5
    >>> import iso8601
    >>> iso8601.parse_date('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=)
    
    6
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    2

    print

    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    0
    >>> from datetime import datetime
    >>> iso_ts = '2012-11-01T04:16:13-04:00'
    >>> datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
    
    0
    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    
    2

    print

    >>> from datetime import datetime
    >>> iso_ts = '2012-11-01T04:16:13-04:00'
    >>> datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
    
    3

    %S

    Output:

    string datetime: 
    2021-09-01 15:27:05.004573 +0530
    datestring class is : 
    converted to datetime:
    2021-09-01 15:27:05.004573+05:30
    datetime_obj class is : 

    Thứ hai là một số thập phân bằng không. Converting datetime string to datetime

    Python3

    %M

    Phút như một số thập phân bằng không.

    00, 01,…, 59

    print

    >>> from datetime import datetime
    >>> iso_ts = '2012-11-01T04:16:13-04:00'
    >>> datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
    
    3

    Output:

    %S

    Thứ hai là một số thập phân bằng không.

    %fConverting datetime string to datetime

    Python3

    %M

    Phút như một số thập phân bằng không.

    00, 01,…, 59

    print

    >>> from datetime import datetime
    >>> iso_ts = '2012-11-01T04:16:13-04:00'
    >>> datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
    
    3

    Output:

    %S


    Kể từ Python 3.7, date_string 4 có thể xử lý định dạng của bạn:

    >>> import datetime
    >>> datetime.datetime.fromisoformat('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)))
    

    Trong các phiên bản Python cũ hơn, bạn không thể, không phải là không có nhiều thời gian thủ công miệt mài xác định.

    Python không bao gồm cơ sở dữ liệu múi giờ, bởi vì nó sẽ lỗi thời quá nhanh. Thay vào đó, Python dựa vào các thư viện bên ngoài, có thể có chu kỳ phát hành nhanh hơn nhiều, để cung cấp thời gian được cấu hình đúng cho bạn.

    Như một tác dụng phụ, điều này có nghĩa là phân tích cú pháp múi giờ cũng cần phải là một thư viện bên ngoài. Nếu date_string 5 quá nặng đối với bạn, hãy sử dụng date_string 6, nó sẽ phân tích định dạng cụ thể của bạn chỉ tốt:

    >>> import iso8601
    >>> iso8601.parse_date('2012-11-01T04:16:13-04:00')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=)
    

    date_string 6 là một con số khổng lồ 4kb nhỏ. So sánh đó là 148kb của Tot ____ ____ 68.

    Kể từ Python 3.2 Python có thể xử lý múi giờ dựa trên độ bù đơn giản và date_string 9 sẽ phân tích các lần giảm thời gian =0 và =1 trong dấu thời gian. Điều đó có nghĩa là đối với dấu thời gian ISO 8601, bạn phải loại bỏ =2 trong múi giờ:

    >>> from datetime import datetime
    >>> iso_ts = '2012-11-01T04:16:13-04:00'
    >>> datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    datetime.datetime(2012, 11, 1, 4, 16, 13, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
    

    Việc thiếu phân tích cú pháp ISO 8601 thích hợp đang được theo dõi trong số liệu Python 15873.

    Làm cách nào để sử dụng múi giờ DateTime trong Python?

    Bạn có thể nhận thời gian hiện tại trong một múi giờ cụ thể bằng cách sử dụng mô -đun DateTime với một mô -đun khác có tên là PYTZ. Sau đó, bạn có thể kiểm tra tất cả các múi giờ có sẵn với đoạn trích bên dưới: từ DateTime Nhập DateTime Nhập PYTZ ZONES = PYTZ.ALL_TIMEZONES IN (Khu vực) # Đầu ra: Tất cả các múi giờ của thế giới.from datetime import datetime import pytz zones = pytz. all_timezones print(zones) # Output: all timezones of the world.

    Làm cách nào để thay đổi múi giờ trên đối tượng DateTime?

    Chuyển đổi giữa thời gian sử dụng DateTime. Phương thức ASTIMEZONE () để chuyển đổi DateTime từ thời gian này sang phương thức khác. Phương thức này sử dụng một thể hiện của đối tượng DateTime và trả về một datetime mới của một múi giờ nhất định.Use the datetime. astimezone() method to convert the datetime from one timezone to another. This method uses an instance of the datetime object and returns a new datetime of a given timezone.

    DateTime có múi giờ không?

    Giá trị DateTime xác định một ngày và thời gian cụ thể.Nó bao gồm một thuộc tính loại cung cấp thông tin hạn chế về múi giờ mà ngày và thời gian đó thuộc về.Giá trị DateTimeKind được trả về bởi thuộc tính loại cho biết liệu giá trị DateTime có đại diện cho thời gian cục bộ hay không (Datetimekind.It includes a Kind property that provides limited information about the time zone to which that date and time belongs. The DateTimeKind value returned by the Kind property indicates whether the DateTime value represents the local time (DateTimeKind.

    Python có phải là DateTime trong UTC không?

    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 đó.You can 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.