Tôi đang cố gắng sử dụng lệnh date để tạo dấu thời gian tệp mà chính lệnh date có thể diễn giải. Tuy nhiên, lệnh date dường như không thích đầu ra của chính nó và tôi không chắc làm thế nào để khắc phục điều này. Trường hợp tại điểm:
sh-4.2$ date
Fri Jan 3 14:22:19 PST 2014
sh-4.2$ date +%Y%m%dT%H%M
20140103T1422
sh-4.2$ date -d "20140103T1422"
Thu Jan 2 23:22:00 PST 2014
ngày dường như đang diễn giải chuỗi với độ lệch 15 giờ. Có bất kỳ giải pháp được biết đến cho điều này?
Chỉnh sửa: đây không phải là vấn đề hiển thị:
sh-4.2$ date +%s
1388791096
sh-4.2$ date +%Y%m%dT%H%M
20140103T1518
sh-4.2$ date -d 20140103T1518 +%s
1388737080
sh-4.2$ python
Python 3.3.3 (default, Nov 26 2013, 13:33:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1388737080 - 1388791096
-54016
>>> 54016/3600
15.004444444444445
>>>
Nó vẫn tắt sau 15 giờ khi được hiển thị dưới dạng dấu thời gian unix.
EDIT # 1
Có lẽ tôi nên đặt ra câu hỏi này một chút khác nhau. Giả sử tôi có một danh sách các dấu thời gian cơ bản của ISO8601 có dạng:
- YYYYMMDDThhmm
- YYYYMMDDThhmmss
Cách đơn giản nhất để chuyển đổi chúng thành dấu thời gian Unix tương ứng là gì?
Ví dụ:
- 20140103T1422 = 1388787720
- 20140103T142233 = 1388787753
20140103T1518
không hợp lệ ISO 8601, nó bỏ lỡ phần múi giờ