gpt4 book ai didi

clojure - 如何解构即时并从 java 时间库中提取年、月等

转载 作者:行者123 更新时间:2023-12-02 20:20:54 24 4
gpt4 key购买 nike

我正在尝试解构一个瞬间并获取年、月、日。

我尝试过使用 java-time/as 函数,但没有成功。

(ns myproject.time-test
(:require [java-time :as jt])
(:gen-class))

(def curr-time (jt/instant (System/currentTimeMillis)))

(jt/as curr-time :year)

有人能指出我正确的方向吗?

最佳答案

我会在没有 .. 的情况下执行此操作,以明确您正在使用 Java 互操作(看起来 clojure.java-time 没有包装器可以从 Instant 转换为 ZonedDateTime:

(-> (jt/instant)
(.atZone (ZoneId/systemDefault)) ; => java ZonedDateTime obj
(.getYear))

=> 2018

还有其他可能有用的方法:

(jt/zoned-date-time)              => #object[java.time.ZonedDateTime 0x2585437a 
"2018-07-19T11:42:37.093731-07:00[America/Los_Angeles]"]

(jt/year (jt/zoned-date-time)) => #object[java.time.Year 0x74694f06 "2018"]
(jt/year) => #object[java.time.Year 0x16c69c47 "2018"]

还有

(jt/as (jt/zoned-date-time) :year :month-of-year :day-of-month)   =>   (2018 7 19)

Instant 转换为 ZonedDateTime 的另一种方法:

  (let [zdt (ZonedDateTime/ofInstant (jt/instant) (ZoneId/systemDefault))]
(.getYear zdt) => 2018
(.getMonth zdt) => #object[java.time.Month 0x403d9a5b "JULY"]
(.getDayOfMonth zdt) => 19

关于clojure - 如何解构即时并从 java 时间库中提取年、月等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com