2010-05-25 38 views
5

Tôi hiểu emacs lisp là tuyệt vời để xử lý ngày tháng và thời gian, nhưng nó có chức năng chuyển đổi chuỗi để đại diện nội bộ của các số nguyên bằng cách sử dụng các định dạng như %Y, %m, %d, %H, %M, %S, và vân vân? Ngoài ra, trong hướng dẫn tham khảo emacs, nó nói rằng thời gian là danh sách của hai hoặc ba số nguyên, nhưng có một đặc điểm kỹ thuật chính thức hơn hoặc mô tả? ~ Cảm ơn ~Ngày và giờ trong Emacs Lisp

Chỉnh sửa: Cảm ơn bạn đã trả lời - nhưng tôi đoán liệu có chức năng định dạng chuỗi thời gian ngược lại (như parse-time-string nhưng với thông số cấu trúc cho chuỗi đầu vào)?

Edit2: Tôi đoán câu trả lời là không có gì được tích hợp sẵn ... nhưng triển khai từng phần đã được triển khai here.

+0

Tôi vừa thử strptime.el và thậm chí nó không hoạt động cho các ví dụ "Kiểm tra thủ công" được đưa ra trong tệp; dường như thay thế trong chuỗi không còn trong các emacs nữa. Tệ quá, tôi đang tìm kiếm cùng một chức năng. – Liam

+0

Nó có hoạt động nếu bạn tạo một bí danh '(defalias 'replace-in-string' thay thế-regex-in-string)'? – hatmatrix

Trả lời

2

Thời gian được trả về bởi hầu hết các hàm liên quan đến thời gian dưới dạng danh sách ba số nguyên. Đầu tiên có 16 bit quan trọng nhất trong số giây, trong khi giây thứ hai có số ít nhất làít nhất 16 bit. Số nguyên thứ ba cho số micro giây là .

Số micro giây bằng 0 trên các hệ thống không cung cấp độ phân giải nhỏ hơn một giây.

Đối với phần còn lại của câu hỏi, hãy xem this section hướng dẫn trong trường hợp bạn bỏ lỡ.

2
(defun encode-time-string (string) 
    (apply #'encode-time (parse-time-string string))) 

Biểu diễn bên trong có thể thay đổi; Tôi nghĩ sẽ tốt hơn nếu sử dụng API được cung cấp tài liệu (thời gian mã hóa, thời gian giải mã, v.v.) để truy cập nó.

Các vấn đề liên quan