Haskell 中的日期函式
圖靈教育的程式設計日曆(其實是周曆)每週使用一種程式設計語言以“YYYY-MM-DD”格式輸出當天的日期。注意:這裡的當天是指程式執行時的日期,而不是程式設計日曆中的日期。10月份的第4周是 Haskell 語言:
但是,這個程式是有問題的:
根據給出的錯誤資訊,刪除 HackingDate.hs 的第2行就行了:
這個程式中用到的 getZonedTime
, formatTime
, defaultTimeLocale
等函式的資訊如下:
$ ghci
GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help
Prelude> :info Data.Time.getZonedTime
time-1.8.0.2:Data.Time.LocalTime.Internal.ZonedTime.getZonedTime ::
IO time-1.8.0.2:Data.Time.LocalTime.Internal.ZonedTime.ZonedTime
-- Defined in ‘time-1.8.0.2:Data.Time.LocalTime.Internal.ZonedTime’
Prelude> :info Data.Time.formatTime
Data.Time.Format.formatTime ::
Data.Time.Format.FormatTime t =>
time-1.8.0.2:Data.Time.Format.Locale.TimeLocale
-> String -> t -> String
-- Defined in ‘Data.Time.Format’
Prelude> :info Data.Time.defaultTimeLocale
time-1.8.0.2:Data.Time.Format.Locale.defaultTimeLocale ::
time-1.8.0.2:Data.Time.Format.Locale.TimeLocale
-- Defined in ‘time-1.8.0.2:Data.Time.Format.Locale’
其中,getZonedTime
返回當前的時間(帶有時區資訊):
Prelude> a <- Data.Time.getZonedTime
Prelude> a
2019-10-23 19:55:23.247136385 CST
這裡的 CST 是 China Standard Time (UTC+8)。
Data.Time.defaultTimeLocale
的值:
Prelude> Data.Time.defaultTimeLocale
TimeLocale {wDays = [("Sunday","Sun"),("Monday","Mon"),("Tuesday","Tue"),("Wednesday","Wed"),("Thursday","Thu"),("Friday","Fri"),("Saturday","Sat")], months = [("January","Jan"),("February","Feb"),("March","Mar"),("April","Apr"),("May","May"),("June","Jun"),("July","Jul"),("August","Aug"),("September","Sep"),("October","Oct"),("November","Nov"),("December","Dec")], amPm = ("AM","PM"), dateTimeFmt = "%a %b %e %H:%M:%S %Z %Y", dateFmt = "%m/%d/%y", timeFmt = "%H:%M:%S", time12Fmt = "%I:%M:%S %p", knownTimeZones = [UT,GMT,EST,EDT,CST,CDT,MST,MDT,PST,PDT]}
這裡的 CST 是 Central Standard Time (UTC-6)。
而 System.Locale.defaultTimeLocale
的值略有不同(沒有時區相關的資訊):
Prelude> System.Locale.defaultTimeLocale
TimeLocale {wDays = [("Sunday","Sun"),("Monday","Mon"),("Tuesday","Tue"),("Wednesday","Wed"),("Thursday","Thu"),("Friday","Fri"),("Saturday","Sat")], months = [("January","Jan"),("February","Feb"),("March","Mar"),("April","Apr"),("May","May"),("June","Jun"),("July","Jul"),("August","Aug"),("September","Sep"),("October","Oct"),("November","Nov"),("December","Dec")], intervals = [("year","years"),("month","months"),("day","days"),("hour","hours"),("min","mins"),("sec","secs"),("usec","usecs")], amPm = ("AM","PM"), dateTimeFmt = "%a %b %e %H:%M:%S %Z %Y", dateFmt = "%m/%d/%y", timeFmt = "%H:%M:%S", time12Fmt = "%I:%M:%S %p"}
時區資訊
相關文章
- Haskell學習-高階函式Haskell函式
- 深度學習中的函式語言之美 - Clojure和Haskell深度學習函式Haskell
- 《Haskell趣學指南》筆記之函式Haskell筆記函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- oracle interval日期函式的bug!Oracle函式
- SPL 的日期時間函式函式
- MySQL 日期函式、時間函式在實際場景中的應用MySql函式
- SQLSERVER日期函式(zt)SQLServer函式
- 日期加一天的函式函式
- MySQL 的日期和時間函式MySql函式
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- Clickhouse 時間日期函式函式
- mysql日期函式總結MySql函式
- MYSQL事件使用 日期函式MySql事件函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- oracle 10g函式大全–日期型函式Oracle 10g函式
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- python中關於時間和日期函式的常用計算總結Python函式
- Oracle日期格式化以及extract函式的使用Oracle函式
- 《MySQL 入門教程》第 16 篇 MySQL 常用函式之日期函式MySql函式
- Go基礎-時間和日期函式Go函式
- MySQL日期和時間函式彙總MySql函式
- Sql 中的 left 函式、right 函式SQL函式
- Rust中的into函式和from函式Rust函式
- Django筆記二十五之資料庫函式之日期函式Django筆記資料庫函式
- Clickhouse SQL日期處理函式及案例分享SQL函式
- MySQL-日期和資料處理函式MySql函式
- JavaScript中的compose函式和pipe函式JavaScript函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 《Haskell趣學指南》筆記之 Applicative 函子Haskell筆記APP
- DBA_oracle日期函式-【來自多個專案】Oracle函式
- mysql儲存過程及日期函式實踐MySql儲存過程函式
- js中在一個函式中引用另一個函式中的函式,可以這麼做JS函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- 大資料開發-Hive-常用日期函式&&日期連續題sql套路大資料Hive函式SQL
- mysql 時間相關的函式 以及日期和字串互轉MySql函式字串
- PHP函式運用之返回兩給定日期的天數差PHP函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript