Trước hết, các Unix 'kỷ nguyên' hoặc không có thời gian là 1970/01/01 00: 00: 00Z (có nghĩa là nửa đêm 01 tháng 1 năm 1970 trong Zulu hoặc Múi giờ GMT hoặc UTC). Dấu thời gian Unix là số giây kể từ thời điểm đó - không tính số giây nhảy vọt.
Tạo thời gian hiện tại trong Perl là khá dễ dàng:
perl -e 'print time, "\n"'
Tạo thời gian tương ứng với một giá trị/lần ngày đã cho là khá ít dễ dàng. Về mặt logic, bạn sử dụng hàm strptime()
từ POSIX. Tuy nhiên, Perl POSIX :: strptime mô-đun (đó là tách biệt với các mô-đun POSIX) có chữ ký:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
Chức năng mktime
trong module POSIX có chữ ký:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Vì vậy, nếu bạn biết định dạng dữ liệu của mình, bạn có thể viết một biến thể trên:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'
tôi đã thực hiện một công cụ trực tuyến một số thời gian trước đây. https://quickhash.com/timestamp –
@ A.B.Carroll Bạn có thể vui lòng giải thích như là một anwer cách công cụ trực tuyến của bạn cung cấp Unix timestamps? Xin vui lòng, đính kèm một hướng dẫn sử dụng vv cho nó. Nó dường như cung cấp rất nhiều dữ liệu nhưng tôi không thể thực sự làm theo mục tiêu là gì. –
'gettimeofday' là tên POSIX và Linux syscall: https://stackoverflow.com/questions/11765301/how-do-i-get-the-unix-timestamp-in-c-as-an-int/11765379# 11765379 TODO: tại sao 'strace date +% d' không gọi nó? –