Chuỗi ngày giờ của Python thành epoch

Trong điện toán, thời gian kỷ nguyên là ngày và giờ mà máy tính đo thời gian hệ thống. Đó là điểm bắt đầu hoặc thời điểm cố định trong thời gian được sử dụng để tính số giây đã trôi qua. Ngày giờ của máy tính được xác định theo số giây đã trôi qua kể từ thời điểm kỷ nguyên

Thời gian Epoch còn được gọi là thời gian POSIX hoặc thời gian UNIX. Ví dụ: trong hầu hết các phiên bản UNIX, thời gian kỷ nguyên bắt đầu từ 00. 00. 00 UTC ngày 1 tháng 1 năm 1970

Vì vậy, khi chúng tôi chuyển đổi datetime thành giây, chúng tôi sẽ nhận được số giây kể từ epoch. Nó có nghĩa là số giây đã trôi qua giữa ngày giờ đầu vào và thời gian kỷ nguyên [00. 00. 00 UTC ngày 1 tháng 1 năm 1970]

Cách chuyển đổi thời gian thành giây trong Python

Giả sử bạn có một ngày giờ [2018,10,22] ở định dạng UTC và bạn muốn tính số giây kể từ kỷ nguyên. Các bước dưới đây cho thấy hai cách để chuyển đổi thời gian thành giây

  1. Nhập mô-đun ngày giờ

    Mô-đun datetime trong Python cung cấp nhiều chức năng khác nhau để tạo và thao tác ngày và giờ. Sử dụng câu lệnh 

    Datetime to Seconds since epoch: 1540166400.0
    0 để nhập lớp 
    Datetime to Seconds since epoch: 1540166400.0
    1 từ mô-đun ngày giờ

  2. Trừ thời gian đầu vào từ thời gian Epoch

    Để chuyển đổi một ngày giờ thành giây, trừ thời gian dữ liệu đầu vào từ thời gian epoch. Đối với Python, thời gian kỷ nguyên bắt đầu từ 00. 00. 00 UTC ngày 1 tháng 1 năm 1970. Phép trừ cung cấp cho bạn đối tượng timedelta. Sử dụng phương thức

    Datetime to Seconds since epoch: 1540166400.0
    2 của đối tượng timedelta để lấy số giây kể từ kỷ nguyên

  3. Sử dụng phương thức dấu thời gian[]

    Nếu phiên bản Python của bạn lớn hơn 3. 3 thì có một cách khác là sử dụng phương thức

    Datetime to Seconds since epoch: 1540166400.0
    3 của lớp datetime để chuyển đổi datetime thành giây. Phương thức này trả về một giá trị float đại diện cho các phân số chẵn của giây

Thí dụ. Ngày giờ sang Giây

from datetime import datetime

# input datetime
dt = datetime[2018, 10, 22, 0, 0]
# epoch time
epoch_time = datetime[1970, 1, 1]

# subtract Datetime from epoch datetime
delta = [dt - epoch_time]
print['Datetime to Seconds since epoch:', delta.total_seconds[]]

đầu ra

Datetime to Seconds since epoch: 1540166400.0

Datetime thành giây sử dụng dấu thời gian[]

Dấu thời gian là thông tin được mã hóa thường được sử dụng trong UNIX, cho biết ngày và giờ xảy ra một sự kiện cụ thể. Thông tin này có thể chính xác đến từng micro giây. Đó là dấu thời gian POSIX tương ứng với phiên bản datetime

Đoạn mã dưới đây cho thấy cách chuyển đổi thời gian thành giây bằng phương thức

Datetime to Seconds since epoch: 1540166400.0
3. Phương pháp này sẽ chỉ hữu ích nếu bạn cần số giây từ epoch [1970-01-01 UTC]. Nó trả về một số giây đã trôi qua kể từ epoch dưới dạng giá trị float biểu thị các phân số chẵn của giây

Thí dụ

from datetime import datetime

# input datetime
dt = datetime[2018, 10, 22, 0, 0]
print['Seconds since epoch:', dt.timestamp[]]

đầu ra

________số 8_______

Ghi chú

Lưu ý rằng các múi giờ khác nhau có tác động đến kết quả. Do đó, người ta nên xem xét chuyển đổi thời gian sang UTC trước khi chuyển đổi thành giây

Để có kết quả chính xác, bạn nên sử dụng thời gian UTC. Nếu ngày giờ của bạn chưa có trong UTC, bạn sẽ cần chuyển đổi nó trước khi sử dụng hoặc đính kèm một lớp tzinfo với độ lệch múi giờ phù hợp. Thêm

Datetime to Seconds since epoch: 1540166400.0
5 nếu sử dụng Python 2 hoặc
Datetime to Seconds since epoch: 1540166400.0
6 nếu sử dụng Python 3

Không sử dụng strptime để chuyển đổi ngày giờ thành giây bằng thuộc tính

Datetime to Seconds since epoch: 1540166400.0
7 vì Python không hỗ trợ thuộc tính
Datetime to Seconds since epoch: 1540166400.0
7. Nếu bạn sử dụng nó, Python sẽ sử dụng strftime của hệ thống, sử dụng múi giờ địa phương của bạn và bạn sẽ nhận được kết quả không chính xác. Thấy

Datetime thành giây bằng cách sử dụng mô-đun lịch

Mô-đun lịch cung cấp phương thức trả về giá trị dấu thời gian Unix tương ứng, giả sử một kỷ nguyên là năm 1970 và mã hóa POSIX

  • nhập mô-đun clenadar
  • Sử dụng
    Datetime to Seconds since epoch: 1540166400.0
    9 để lấy bộ thời gian từ datetime
  • Tiếp theo, chuyển bộ thời gian cho phương thức
    from datetime import datetime
    
    # input datetime
    dt = datetime[2018, 10, 22, 0, 0]
    print['Seconds since epoch:', dt.timestamp[]]
    
    0 để chuyển đổi ngày giờ thành giây

Thí dụ

import calendar
from datetime import datetime

# input datetime
dt = datetime[2018, 10, 22, 0, 0]

print['Datetime to seconds:', calendar.timegm[dt.timetuple[]]]

đầu ra

Datetime to seconds: 1540166400

Ghi chú

  • Phương pháp này loại bỏ các phân số của một giây
  • Sự chấp thuận của lịch không có cách nào để chỉ định múi giờ. Nếu datetime đầu vào là trường hợp nhận biết và sử dụng múi giờ khác với múi giờ của hệ thống, thì kết quả sẽ không chính xác [múi giờ bị mất trong lệnh gọi
    from datetime import datetime
    
    # input datetime
    dt = datetime[2018, 10, 22, 0, 0]
    print['Seconds since epoch:', dt.timestamp[]]
    
    1]. Để có câu trả lời chính xác cho ngày giờ 'biết', bạn có thể sử dụng
    from datetime import datetime
    
    # input datetime
    dt = datetime[2018, 10, 22, 0, 0]
    print['Seconds since epoch:', dt.timestamp[]]
    
    2

Giây/kỷ nguyên thành Ngày giờ

Nếu bạn muốn chuyển đổi số giây kể từ epoch thành đối tượng datetime, hãy sử dụng phương thức

from datetime import datetime

# input datetime
dt = datetime[2018, 10, 22, 0, 0]
print['Seconds since epoch:', dt.timestamp[]]
3 của lớp datetime

Thí dụ

from datetime import datetime

# seconds
ts = 1540146600.0

# convert seconds to datetime
dt = datetime.fromtimestamp[ts]
print["datetime is:", dt]

đầu ra

datetime is: 2018-10-22 00:00:00

Chuyển đổi thời gian Epoch bằng mili giây thành datetime

Nếu bạn muốn chuyển đổi mili giây thành đối tượng datetime, hãy sử dụng phương thức strptime[] của lớp datetime. Sử dụng mã định dạng

from datetime import datetime

# input datetime
dt = datetime[2018, 10, 22, 0, 0]
print['Seconds since epoch:', dt.timestamp[]]
4 để phân tích cú pháp

Làm cách nào để chuyển đổi datetime datetime thành epoch trong Python?

strftime[] được sử dụng để chuyển đổi chuỗi DateTime thành DateTime. Nó cũng được sử dụng để chuyển đổi DateTime thành epoch. Chúng ta có thể lấy epoch từ DateTime từ strftime[]. .
dấu thời gian là ngày giờ đầu vào
$s được sử dụng để lấy chuỗi kỷ nguyên
datetime là mô-đun

Làm cách nào để chuyển đổi chuỗi ngày thành dấu thời gian Unix trong Python?

Dưới đây là mã ví dụ để chuyển đổi ngày python thành dấu thời gian UNIX. .
nhập thời gian nhập thời gian nhập date_time = datetime. .
nhập ngày giờ từ múi giờ nhập ngày giờ dt = datetime. .
nhập ngày giờ cho_date = "8/6/2022, 05. 54. 8" formated_date = ngày giờ

Kỷ nguyên trong Python là gì?

Kỷ nguyên là điểm mà thời gian bắt đầu, giá trị trả về của thời gian . gmtime[0]. Đó là ngày 1 tháng 1 năm 1970, 00. 00. 00 [UTC] trên tất cả các nền tảng.

Chủ Đề