【问题标题】:Get a DateTime with an specific pattern with nscala-time使用 nscala-time 获取具有特定模式的 DateTime
【发布时间】:2016-01-08 15:35:21
【问题描述】:

我正在尝试使用 DateTime 类型的变量来获取此模式 'dd-MM-yyyy'

@{DateTimeFormat.forPattern("dd-MM-YYYY").parseDateTime(user.birthday.toString)}

但是我收到了这个错误

java.lang.IllegalArgumentException:无效格式:“2015-12-10T00:00:00.000Z”在“15-12-10T00:00:00.000Z”处格式错误

有没有办法用 nscala-time 做到这一点?

如果我使用 UTC 会有所不同吗?

更新

目前我正在使用 Date 并执行此操作

@{Dates.format(user.birthday.toDate, "dd-MM-YYYY")}

但也许没有强制转换是更好的方法

谢谢

【问题讨论】:

  • 我认为异常清楚地表明您正在传递“2015-12-10T00:00:00.000Z”,其中日期格式为“dd-MM-YYYY”,这是因为您使用@987654323 @。 user.birthday 的类型是什么?如果要将日期更改为格式化字符串,请尝试使用 DateTimetoString 重载方法,该方法以格式为参数。 DateTimeFormat 似乎也有 print 方法,它需要日期。
  • 谢谢@Łukasz user.birthday 是 DateTime 类型(来自 nscala-time 库)。
  • 那么以下任何一种方法都应该有效。您可以检查 joda time api 而不是 nscala 它应该是相似的。让您的 ide 告诉您您有哪些方法,并使用适合您需要的方法。

标签: scala nscala-time


【解决方案1】:

所以,如果我正确理解了您的问题,您正在努力实现以下目标:

  1. 使用日期格式从字符串中解析日期
  2. 以其他格式打印/显示日期。

试试下面的:

@{Dates.format(DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parseDateTime(user.birthday.toString), "dd-MM-YYYY")}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    相关资源
    最近更新 更多