2012-10-16 31 views
5

Vì vậy, thiết lập là tôi có thời gian, tính bằng giây, kể từ thời đại và tôi muốn biến điều này thành một ngày mà tôi thực sự có thể hiểu được. Làm cách nào để thực hiện điều này trong Haskell? Nếu có thể, làm thế nào tôi có thể trích xuất ngày/giờ/phút ra khỏi mã hóa mới này?Làm cách nào để chuyển đổi từ unixtime sang ngày/giờ trong Haskell?

+1

Lưu ý, điều này thường được gọi là [unixtime] (http://en.wikipedia.org/wiki/Unixtime) – galaxyAbstractor

Trả lời

8

Data.Time.Clock.POSIXposixSecondsToUTCTime (bạn có thể chuyển đổi một loại số khác thành đầu vào mong đợi POSIXTime với realToFrac).

Data.Time.Calendar có rất nhiều thứ bạn cần để trích xuất ngày, tháng, v.v ... từ Day tạo thành một phần của UTCTime, phần còn lại của gói có các tiện ích hữu ích khác.

2

Sử dụng time thư viện được cài đặt theo mặc định:

import Data.Time.Clock.POSIX 
import Data.Time.Format 
import System.Locale 

main = print $ formatTime defaultTimeLocale "%c" $ posixSecondsToUTCTime 10 

Thư viện có hàng loạt các chức năng thao tác cập nhật (ví dụ ngày trừ, nhận được các thành phần như ngày tháng vv). Nếu bạn muốn trích xuất các thành phần chỉ để chuyển đổi chúng thành chuỗi, bạn có thể sử dụng formatTime.

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