jvm 在新服务器上测试代码:localdatetime无法转换为日期,在生产中不会发生这种情况

ijnw1ujt  于 2023-01-13  发布在  其他
关注(0)|答案(2)|浏览(49)
  • 我正在使用ColdFusion 2018和MariaDB 10.5.4在AWS AMI上设置开发服务器
  • 我不知道目前的生产版本是什么,但很可能是旧版本。该应用程序于2016年推出
  • 代码与生产环境中的代码相同,数据库是直接备份和恢复,没有任何更改
  • cfoutput查询尝试格式化字段Named:时,代码中出现错误DateStamp。这是出错代码的一个示例。它出现在许多地方:
#DateFormat(Q.DateStamp,"m/d/yyyy")# #TimeFormat(Q.DateStamp, "short")#
  • 这是错误
  • “值类java.time.LocalDateTime无法转换为日期”
  • MariaDB中的表将DateStamp的数据类型设置为datetime,这与生产中的数据类型相同

我不知道为什么期望字段是一个LocalDateTime,而它是一个常规的DateTime。它必须是这个环境的配置中的某个东西,但我很难理解是什么。我搜索了一下,但我得到的都是“如何处理LocalDateTime”类型的链接,所以它没有任何帮助,因为在测试环境中,我不能更改所有代码,测试环境必须至少使用与生产环境相同的代码启动

2exbekwf

2exbekwf1#

根据我对Adrian贡献的评论-在这种情况下,通常通过比较环境之间的数据源配置来找到答案-最重要的是,是否在两个环境中选择了相同的数据库驱动程序,然后是数据源上的各种高级设置,最后是数据库服务器本身上的任何版本/兼容性设置。

gfttwv5a

gfttwv5a2#

您需要了解生产环境中运行的是ACF、MySQL和Java的哪个版本。即使应用程序是在2016年发布的,也不能保证它是在ColdFusion 2016年发布的。它可能是服务器的旧版本。
从其中选择Q.DateStamp〈id = a single〉
示例类似于“2016年10月17日17:50:34”
您是在IDE中运行查询还是通过cfquery运行查询?您需要确保它作为DateTime对象({ts '2012-12-12 12:12:12'})而不是字符串返回。
java.time.localDateTime
ISO-8601日历系统中不带时区的日期时间,例如2007-12- 03 T10:15:30。
MariaDB日期时间
MariaDB以“年-月-日时:分:秒.ffffff”格式显示日期时间值

相关问题