将Java SQL日期从yyyyMMdd转换为dd MMMM yyyy格式的最佳方法
有没有一种简单的方法可以将Java SQL日期从yyyy-MM-dd格式转换为dd-MMMM-yyyy格式
我可以将日期转换为字符串,然后对其进行操作,但我宁愿将其保留为Java SQL日期。在我需要这样做的时候,数据已经从MySQL数据库中读取,所以我无法在那里进行更改
你可以在下面搜索框中键入要查询的问题!
有没有一种简单的方法可以将Java SQL日期从yyyy-MM-dd格式转换为dd-MMMM-yyyy格式
我可以将日期转换为字符串,然后对其进行操作,但我宁愿将其保留为Java SQL日期。在我需要这样做的时候,数据已经从MySQL数据库中读取,所以我无法在那里进行更改
# 1 楼答案
不清楚“Java SQL日期”是什么意思。如果你的意思是} 的东西
java.sql.Date
,那么它实际上没有字符串格式。。。这只是一个数字。要以一种特定的方式格式化它,可以使用类似^{或者,将其转换为Joda Time{};Joda Time是一个比内置API更好的日期和时间API。例如,
SimpleDateFormat
不是线程安全的(请注意,
java.sql.Date
比普通的java.util.Date
具有更高的精度,但这里似乎不需要这种精度。)# 2 楼答案
tl;博士
不要将日期时间值与其文本表示形式混为一谈
正如其他人所说,日期时间对象具有无格式。只有从对象生成或由对象解析的字符串具有格式。但是这样的字符串总是与日期时间对象分开的
使用对象,而不是字符串
避免使用字符串与数据库通信日期时间值。对于日期时间值,使用日期时间类实例化日期时间对象
JDBC的目的就是协调数据库和Java之间的类型差异
使用java。时间
其他答案已经过时,因为它们使用了麻烦的旧遗留日期时间类或久负盛名的乔达时间库。两者都已被爪哇取代。时间课
如果手头有一个^{} 对象,则通过调用添加到旧类中的新方法^{} ,将其转换为^{}
对于符合JDBC 4.2及更高版本的JDBC drivers,您可以直接使用java。时间类型
你似乎对日期值感兴趣。所以使用} 类表示只包含日期的值,不包含一天中的时间和时区
LocalDate
。^{myPStmt。setObject(…,myLocalDate)
我的结果集。getObject(…,LocalDate.class)
要生成所需格式的字符串,可以指定自定义格式模式。但我建议让java。时间会自动定位
要本地化,请指定:
例如
关于java。时间
{a12}框架内置于Java8及更高版本中。这些类取代了legacy日期时间类,比如^{} 、^{} 、&^{}
目前位于maintenance mode的Joda-Time项目建议迁移到java.time类
要了解更多信息,请参阅Oracle Tutorial。并在Stack Overflow中搜索许多示例和解释。规范是JSR 310
在哪里可以获得java。时间课
{a30}项目扩展了java。有额外课程的时间。这个项目是java未来可能增加的一个试验场。时间你可以在这里找到一些有用的类,比如^{} 、^{} 、^{} 和more