在 groovy 中将字符串日期转换为日期格式时出现问题:

19j*_*mrs 3 groovy

我试图将其中包含日期的字符串与当前日期进行比较,但是当我尝试将字符串解析为日期格式时,它总是给我一个错误。

出现问题的代码部分:

String data = "12-05-2020"
Date teste = Date.parse("dd-MM-yyy",data)
Run Code Online (Sandbox Code Playgroud)

错误:

groovy.lang.MissingMethodException: No signature of method: static java.util.Date.parse() is applicable for argument types: (String, String) values: [dd-MM-yyy, 12-05-2020]
Possible solutions: parse(java.lang.String), wait(), clone(), grep(), any(), putAt(java.lang.String, java.lang.Object)
    at Script1.run(Script1.groovy:2)
Run Code Online (Sandbox Code Playgroud)

这似乎是一件非常愚蠢的事情,所以,如果你能帮助我的话!多谢

tim*_*tes 10

自 Groovy 2.5(我认为)以来,标准 Java 日期扩展尚未随 groovy-all jar 一起提供

\n\n

如果必须使用它们,则需要包含另一个依赖项

\n\n
org.codehaus.groovy:groovy-dateutil:\xc2\xabversion\xc2\xbb\n
Run Code Online (Sandbox Code Playgroud)\n\n

(其中\xc2\xabversion\xc2\xbb与您正在使用的 Groovy 版本相同)

\n\n

删除它的原因是java.time包中有新的(更好的)日期时间类......

\n\n

所以你可以在它的位置执行以下操作:

\n\n
import java.time.LocalDate\n\nString data = "12-05-2020"\nLocalDate teste = LocalDate.parse(data, "dd-MM-yyyy")\n
Run Code Online (Sandbox Code Playgroud)\n\n

无需额外的库

\n