我在grails new SimpleDateFormat上遇到问题。
由于我正在通过API从其他服务器接收日期时间格式的数据,因此我尝试使用SimpleDateTimeFormat将字符串转换为datetime,
在将数据保存到数据库中时出现以下错误,请在下面查看代码
错误:

Cannot cast object 'Mon Feb 12 00:00:00 PKT 2018' with class 'java.util.Date' to class 'org.joda.time.LocalDate'
域类
import org.joda.time.LocalDate

LocalDate startDate
代码:
def pattern = "yyy-MM-dd"
        def startDateStr = [pathtofield].Value
        def stringToDate = new SimpleDateFormat(pattern).parse(startDateStr)

[domainclass].startDate = stringToDate
请帮忙。

最佳答案

    def formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")

    def startDateStr = "2018-02-12 00:00:00"
    def stringToDate = formatter.parseLocalDate(startDateStr)

    [domainclass].startDate = stringToDate
我已经运行了与Java代码相对应的代码,并且在不知所措的情况下进行了手工翻译,请原谅我可能犯的任何错误。无论如何,formatter.parseLocalDate()为您提供了一个Joda-Time LocalDate,我从您的错误消息中了解到这就是您所需要的。
对于格式化程序,不要考虑SimpleDateFormat。一,这是一个臭名昭著的类(class)制造者,二,它不适用于Joda-Time类(class)。正如Mark Rotteveel在评论中所说,Joda-Time具有自己的DateTimeFormatter类,用于解析和格式化其日期和时间对象。

关于java - Java grails:无法将类 'Mon Feb 12 00:00:00 PKT 2018'的对象 'java.util.Date'强制转换为类 'org.joda.time.LocalDate',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62978370/

10-13 04:52