Haskell:将日期转换为UNIX时间戳
如何获取“一周前”的UNIX时间戳?目前我有:Haskell:将日期转换为UNIX时间戳,haskell,time,timestamp,Haskell,Time,Timestamp,如何获取“一周前”的UNIX时间戳?目前我有: import Data.Time ... oneWeekAgo = toTimestamp . addDays (-7) <$> now where now = utctDay <$> getCurrentTime toTimestamp = formatTime defaultTimeLocale "%s" 导入数据。时间 ... oneWeekAgo=toTimestamp。现在添加天数(-7) 其
import Data.Time
...
oneWeekAgo = toTimestamp . addDays (-7) <$> now
where now = utctDay <$> getCurrentTime
toTimestamp = formatTime defaultTimeLocale "%s"
导入数据。时间
...
oneWeekAgo=toTimestamp。现在添加天数(-7)
其中now=utctDay getCurrentTime
toTimestamp=formatTime defaultTimeLocale“%s”
但这不起作用,因为
formatTime
返回的是一个空字符串。我刚刚提出的解决方案是使用UTCTime day 0
将日值转换回时间
import Data.Time
...
oneWeekAgo = toTimestamp . toTime . addDays (-7) <$> now
where now = utctDay <$> getCurrentTime
toTimestamp = formatTime defaultTimeLocale "%s"
toTime day = UTCTime day 0
导入数据。时间
...
oneWeekAgo=toTimestamp。托蒂姆。现在添加天数(-7)
其中now=utctDay getCurrentTime
toTimestamp=formatTime defaultTimeLocale“%s”
toTime日=UTCTime日0
我不确定您到底想要什么,但您可能需要修改utctDay
并使用utcTimeToPOSIXSeconds
将UTCTime
转换为posix时间戳
import Data.Time
import Data.Time.Clock.POSIX
oneWeekAgo = do now <- getCurrentTime
let oneWeekAgo = now { utctDay = addDays (-7) $ utctDay now }
return $ utcTimeToPOSIXSeconds oneWeekAgo
导入数据。时间
导入Data.Time.Clock.POSIX
oneWeekAgo=do now后者又短又甜,但我们能逃脱7*24*60*60
?我喜欢写-7
,因为我们要做的事情很明显。
oneWeekAgo = ((subtract (7 * 24 * 60 * 60)) . utcTimeToPOSIXSeconds) <$> getCurrentTime