使用标准库获取今日日期

任务

日期和时间 / 获取今日日期

未使用任何包

此食谱仅使用 OCaml 标准库

代码

unix 库与 OCaml 的标准库一起提供,用于处理日期和时间的功能。

let today = Unix.localtime (Unix.time ());;
let day = today.Unix.tm_mday;;

月份从 0 到 11 编号。

let month = today.Unix.tm_mon + 1;;

年份从 1900 年开始计算。

let year = today.Unix.tm_year + 1900;;

Printf.printf "The current date is %04d-%02d-%02d\n"
    year month day;;

讨论

  • 理解 Unix.localtimeUnix.timeUnix.localtime 函数将从 Unix.time 获取的时间戳(返回自 Unix 纪元以来的当前时间)转换为本地时间,由 tm 结构表示。此结构包含诸如 tm_yeartm_montm_mday 等字段,分别表示年份、月份和日期。
  • 月份和年份调整:在 OCaml 的 Unix 模块中,月份从 0 开始(0 表示 1 月,11 表示 12 月),年份是从 1900 年开始算起的年数。请务必调整这些值以获得人类可读的日期。
  • 替代库:对于更复杂的日期时间操作,请考虑使用外部库,例如 calendartimedesc,它们提供了更多功能,例如时区处理和日期运算。

食谱不起作用?注释不清楚或已过时?

提交问题参与此食谱的贡献