mysql Java使用不同格式解析文本字段中的日期
我在Eclipse中遇到了一些日期方面的问题。我在文本字段中显示日期,格式为
dd/MM/yyyy
我需要从这个文本字段中获取文本,并将其解析为日期,将其插入到我的数据库中DATE
类型的列中。我使用的是MySQL,它接受日期作为
yyyy-MM-dd
我尝试了很多选择,无论是使用LocalDate
还是旧的Date
,但都没有找到解决方案。有人能帮忙吗?谢谢大家!
你可以在下面搜索框中键入要查询的问题!
我在Eclipse中遇到了一些日期方面的问题。我在文本字段中显示日期,格式为
dd/MM/yyyy
我需要从这个文本字段中获取文本,并将其解析为日期,将其插入到我的数据库中DATE
类型的列中。我使用的是MySQL,它接受日期作为
yyyy-MM-dd
我尝试了很多选择,无论是使用LocalDate
还是旧的Date
,但都没有找到解决方案。有人能帮忙吗?谢谢大家!
# 1 楼答案
试试这个:
# 2 楼答案
爪哇。时间
其他答案是正确的,但使用过时的类。旧的日期时间类,如java。util。日期/。事实证明,日历设计拙劣、混乱且麻烦。避开它们。它们已被爪哇取代。Java 8及更高版本中内置的时间框架
定义用于解析输入字符串的模式
将输入字符串解析为^{} 对象,表示一个仅日期的值,不包含一天中的时间或时区
有朝一日,JDBC驱动程序将被更新,以直接与java一起工作。时间类型。但在此之前,我们必须转换为java。用于向数据库传输数据或从数据库传输数据的sql类型
然后使用
PreparedStatement
,调用setDate
并传递sqlDate将值写入数据库要从数据库中检索,请调用
getDate
。立即转换为java。通过调用java.sql.Date::toLocalDate
来计算时间。尽量减少java的使用。sql类型。用java编写业务逻辑。时间如果您的JDBC驱动程序符合JDBC4.2及更高版本,则可以跳过java。sql类型并使用java。直接输入时间类型
MyPrepsmt。setObject(…,myLocalDate)
LocalDate ld=myResultSet。getObject(…,LocalDate.class)李>
这个问题真是重复。搜索堆栈溢出以获取更多示例
关于java。时间
java.time框架内置于Java8和更高版本中。这些类取代了legacy日期时间类,如^{} 、^{} 、&^{}
现在位于maintenance mode的Joda-Time项目建议迁移到java.time类
要了解更多信息,请参阅Oracle Tutorial。并搜索堆栈溢出以获得许多示例和解释。规范是JSR 310
在哪里可以获得java。时间课
ThreeTen-Extra项目扩展了java。额外上课的时间。这个项目是将来可能添加到java的一个试验场。时间您可以在这里找到一些有用的类,例如^{} 、^{} 、^{} 和more
# 3 楼答案
先前的Java8方法
首先,从
TextField
检索字符串后,应将其解析为java.util.Date
:之后,您可以将
java.util.Date
转换为java.sql.Date
,将其存储到MySQL数据库中,如下所示:Java8方法
正如@BasilBourque所提到的,Java日期和时间机制是由Java提供的。util。日期,爪哇。util。日历和java。util。现在是legacy的时区类
因此,为了使用前面提到的Java 8,可以执行以下操作:
之后,为了将
LocalDate
转换为java.sql.Date
,将其存储到MySQL数据库中,可以执行以下操作:# 4 楼答案
您想使用
SimpleDateFormat
类从文本字段中提取后,可以使用: