关于Java格式化日期

我有一个具有以下格式的字符串:janu​​ary_2005(MMMMMMM_yyyy)

我想将其转换为一个MySQL接受的日期值插入它在数据库上。

我需要做它的Java。

有谁知道怎么办呢?

谢谢

--------------解决方案-------------

这样的事可能会做的伎俩,

SimpleDateFormat myFormat = new SimpleDateFormat("MMMM_yyyy");
Date aDate;
try
{
aDate = myFormat.parse("January_2009");
}
catch (ParseException e)
{
// Error handling
}

然后,您可以插入aDate到使用PreparedStatement您的数据库。

如果你不使用预处理语句,需要它作为一个字符串代替,那么你可以做到以下几点。 虽然,如上所述评价,这是更安全使用用预处理用于插入一个数据块。

SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-MM-dd hh:dd:ss");
String sqlDateString = aDate.format(sqlFormat);

根据SimpleDateFormat API的模式是实际MMMM_yyyy

因此,要获得一个worthfully java.util.Date出这样String ,你需要这样做:

String stringDate = "january_2005";
Date date = new SimpleDateFormat("MMMM_yyyy").parse(stringDate);

如果这几个月预计将始终为英语和Locale的地方运行是不是机器(总是)英语,那么你最好需要指定Locale ,以及:

Date date = new SimpleDateFormat("MMMM_yyyy", new Locale("en")).parse(stringDate);

要保存在数据库中,使用PreparedStatement#setDate() 你需要转换java.util.Datejava.sql.Date第一。

preparedStatement = connection.prepareStatement("INSERT INTO mytable (somedate) VALUES (?)";
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

首先解析日期成使用Date对象SimpleDateFormat

Date d= new SimpleDateFormat("MMMM_yyyy").parse(s)

然后,使用参数化的SQL(一个PreparedStatement)插入日期:

public insertData(Date d) {
Connection conn = setupTheDatabaseConnectionSomehow();
PreparedStatement stmt =
conn.prepareStatement("INSERT INTO t (date) values (?)");
stmt.setDate(2, new java.sql.Date(d));
stmt.executeUpdate();
}

问号将被自动转换成MySQL的正确的格式,并将使你的代码更安全,更便于携带。 搜索参数化的SQL获取更多信息。

创建自己的Dateformatter ......和起诉自己的日期格式来解决此类问题。

DateFormatter

日期格式

请编辑您的问题,如果出现有关日期格式化错误:-)

你可以这样东西SimpleDateFormat这样得到一个Date对象:

DateFormat formatter = new SimpleDateFormat("MMMM_yyyy");
Date date = (Date)formatter.parse("January_2009");

您可能需要大写的“一月”的第一个字母来得到这个工作(我不知道什么输入范围SimpleDateFormat接受。

一旦你得到了一个Date ,它取决于你如何存储日期在MySQL中为下一步该怎么做。

我想,这样的事情会用准备好的声明中做到这一点

DateFormat formatter = new SimpleDateFormat("MMMMMMM_yyyy");
Date mydate = formatter.parse("january_2005");
stmt_date.setTimestamp(4, new Timestamp(mydate.getTime()));

这里提示SimpleDateFormat的答案很大程度上是好看。 然而,到(可能)节外生枝,注意的SimpleDateFormat不是线程安全的。 如果这是一个潜在的问题,为您签出的乔达时库,其中有相似的格式类,但有一个线程安全的保证。

分类:java的 时间:2012-01-01 人气:2
本文关键词: MySQL和Java的,日期
分享到:

相关文章

  • Java的日期格式错误 2013-02-19

    我使用的NetBeans JDatechooser插件摆动我的桌面应用程序的开发. 默认情况下它的日期格式为MM / DD / YY,但是这需要它不是格式分贝. 我需要将其转换为YYYY-MM-DD格式. 我试着用的SimpleDateFormat类,它给了我以下错误: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '8/29/11' for column 'registered_date'

  • 比较MySQL和Java的时间 2013-04-05

    我有MySQL中的日期时间字段,我通过调用result.getString('日')访问,现在我想查询天气Java中的当前日期和时间已经超过了MySQL的时间或者是MySQL的时间来检查的天气之前结果被激活与否. 日期时间从MySQL的形式: 2011-12-30 17:10:00 ,我怎么可以比较此字符串与Java的时间呢? --------------解决方案------------- 您可以使用ResultSet.getDate('date')中检索Date对象. 然后使用方法Date.b

  • 转换的Java SQL日期从YYYY-MM-DD最好的方式来DD MMMM yyyy格式 2013-06-15

    是否有转换的Java SQL日期从格式为YYYY-MM-DD到DD MMMM yyyy格式的简单方法? 我可以在日期转换为一个字符串,然后操纵它,但我宁愿把它作为一个Java SQL数据. 在我需要这样做的时候,数据已经从MySQL数据库中读取,所以我不能做的改变那里. 谢谢 摩根先生. --------------解决方案------------- 对象如java.sql.Date和java.util.Date其中java.sql.Date是一个子类)不具有自己的格式. 您使用java.tex

  • Java的日期格式转换 2014-01-01

    我目前连扳三表单字段输入关闭请求对象. 一天,一个月,一年. 日将是11月月份的第11天是12月年会2010较今年. 我需要将其转换成一个Java Date对象,但既然有这么多的已经被改变,我不知道该怎么保存最好的办法在一个Java对象. 我需要它的格式 YYYY-MM-DD HH:MM:SS 这样我就可以比较日期在MySQL数据库中. --------------解决方案------------- SimpleDateFormat的字符串可以转换为java.util.Date对象. Date类

  • MySQL的6发布日期? 2012-01-14

    任何人都知道,当MySQL的6发布日期是? 我见过一吨的α/β吧,但还没有看到6.0的实际发布日期 看起来早在4月份时,MySQL宣布alpha版本6.0.11发布. 在该版本早在2009年4月,他们表示,这将是最后一个alpha版本并在2009年9月的下一个版本将是一个候选发布版. 2009年9月早已过去了,我还没有看到任何候选发布版为MySQL 6 :( 任何想法,我可以期待6.0被释放? --------------解决方案------------- 决不. http://lists.my

  • MySQL查询得到特定日期时间值? 2012-02-13

    现在我有一个MySQL表有一列名为"DATE_TIME",简单地列出了不同的日期时间值(如"2010-11-30 12时55分00秒"). 是否有可能对我来说,直接构造查询: 选择DATETIME值,其中的月份是当前的月份? 选择在这里的日子没有过去的天(比如明天,直到月底DATETIME值? 在我的脑海抽象查询将如下所示: $query = "SELECT * FROM meetings WHERE uid = " . $_SESSION['u

  • 什么mysql的Java驱动程序版本是你应该使用最新的MySQL服务器使用 2012-03-08

    什么mysql的Java驱动程序版本,你应该用最新的MySQL 5.5.7.RC服务器来使用. (环境:休眠3.3.X) --------------解决方案------------- 推荐的版本可以在这里找到. 它建议使用的MySQL Connector / J 5.1及更高版本. 最新的版本是的MySQL Connector / J 5.1.13(发布2010年6月24). 的MySQL Connector / J 5.1.14尚未发布.

  • 的MySQL todaydate之间的日期 2012-03-22

    我有这样一个表.. S.No Name created_date 1 N1 2011-01-08 2 N2 2011-01-08 3 N3 2011-01-08 我曾尝试使用MySQL的之间的日期筛选记录 该查询 Select * FROM tbl_name WHERE `created_date` >= '2011-01-08' AND `C`.`created_date` <= 2011-01-08 我没有得到任何结果...为什么? --------------解决方案----------

  • 这是什么实际上意味着 - “Java的日期()的返回UTC日期”? 2012-04-19

    我的问题可能是微不足道的,但我只是在寻找澄清. 我在其他地方见过这样Java的日期()实际上始终处于UTC时间,当我创建一个Date()对象怎么来的,用的toString(),它显示本地时间打印. 如果这是不打印的正确方法,是什么它应该是这样我会得到UTC时间? --------------解决方案------------- 对于格式,你应该使用DateFormat实现(如SimpleDateFormat ). 这将让您指定的时区(输出格式). Date本身没有时区的概念-它代表的时间瞬间,使用

  • 我怎么能指示Hibernate来映射Java的日期使用的时区比本地时区等的Oracle DATE列? 2012-08-14

    我怎么能指示Hibernate来映射Java的日期,并从Oracle DATE使用时区比本地时区其他列? --------------解决方案------------- 我不知道,但我认为你将不得不使用OracleConnection.setSessionTimeZone(String regionName)方法来设置会话时区. 要做到这一点就OracleConnection Hibernate来处理它之前,最彻底的方法是提供和使用自定义实施ohcConnectionProvider 请参阅此相

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.483 (s). 10 q(s)