Clojure - 仅从时间字符串中获取小时数

rbb*_*rbb 3 clojure

我有时间字符串"2017-08-30 09:01:48".有没有办法将时间缩短到最近的小时并返回小时?

所以,如果时间"2017-08-30 09:01:48"会回来9

如果时间"2017-08-30 09:51:48"会回来10

我看了看图书馆,clj-time但我看不到任何可以帮助我的东西

任何帮助将非常感激?

Ton*_*ala 6

clj-time是Joda Time库的薄包装器.您可以轻松使用底层Java对象的方法来执行常见的日期操作.

对于舍入小时,您可以访问小时作为a DateTime.Property并使用其API来舍入到最近的小时,如下所示:

(require '[clj-time.format :as tf])

(-> (tf/parse "2017-08-30 09:01:48")
    .hourOfDay
    .roundHalfCeilingCopy
    .getHourOfDay)
Run Code Online (Sandbox Code Playgroud)

有几种舍入方法(roundCeilingCopy,roundHalfFloorCopy等)可供选择,具体取决于您的具体情况.

另请注意,您不需要指定格式化程序,因为您的日期字符串已经是ISO8601格式.