使用隐式将字符串转换为ZonedDateTime

时间:2018-09-28 18:46:06

标签: scala implicit-conversion

我将ZonedDateTime作为String

我希望能够使用隐式转换将字符串转换为ZonedDateTime

这是我的转换

 implicit def string2ZonedDatetime(s: String): ZonedDateTime = {
    ZonedDateTime.parse(s)
  }

这是我的用法:

val createdAt: ZonedDateTime = "2018-09-28T18:38:39+00:00"

但是当我执行此操作时,我得到:

polymorphic expression cannot be instantiated to expected type

我感觉这与某种隐性证据有关?类似于here所述。

但是我不知道它如何解决这个问题。

2 个答案:

答案 0 :(得分:2)

您需要导入hiddenConversions才能对其进行转换

import java.time.ZonedDateTime
import scala.language.implicitConversions

implicit def string2ZonedDatetime(s: String): ZonedDateTime = ZonedDateTime.parse(s)

val createdAt: ZonedDateTime = "2018-09-28T18:38:39+00:00"
val nowTime: ZonedDateTime = ZonedDateTime.now.toString
println(createdAt, nowTime)

答案 1 :(得分:0)

删除ZonedDateTime类型推断是可行的。