用DateFormat处理时间格式,转化为timestamp形式存入数据库(以XXXX年XX月XX日为例)
2012-09-03 16:41
561 查看
今天遇到要用dateformat处理时间的情况,之前没有弄过,因为着急,刚开始没搞清楚原理就乱用,进入一个误区。为了让其他人不要像我一样误解这个类的用法做了个简答的总结。
要处理的问题:
我的情况是这样,我的程序会获得格式:XXXX年XX月XX日的日期,然后我要转化成XXXX-XX-XX形式,并存成timestamp形式时间信息存入数据库,为完成以时间排序的工作做好准备。
一、时间格式转换:
刚开始我获得了一个字符串,里面是一个日期:2012年10月1日。因为我想把这种格式用dateformat类解析成2012-10-01的形式,所以我在初始化一个格式的时候是这样的:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
然后我就弱弱用SimpleDateFormat的parse函数对我得到的字符串进行解析。然后用format妄想生成2012-10-01形式的结果。当时的代码是这样的:
format.format(format.parse(“2012年10月1日”));
。。。现在看来,我弱爆了!
后来仔细一看才发现parse和format功能类似一种互逆过程:
parse可以把传入的字符串按照format定义的格式从第一个字符开始解析,并转化成Date类型的时间。而format则可以把Date类型的时间数据转化成一个字符串。所以,上面的代码format.format(format.parse(“2012年10月1日”));仅仅想让他运行不报错,就要把format的格式定义成要处理的字符串中的时间格式:我们这里当然是应该定义成:
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");这样就可以把传入的时间“2012年10月1日”在String和Date两种类型间转化。
那么我想要形如yyyy-MM-dd的时间怎么办呢?
只能手工把yyyy年MM月dd日形式的时间通过字符串操作转化成形如yyyy-MM-dd的String,然后定义SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");对转化后的新String进行操作。
总结:所以无论你要处理什么格式的时间,在定义format的时候一定要定义和传入的时间格式一致的形式。DateFormat只能进行在同一种时间格式里做Date和String类型的转化。想换种时间格式,就要自己手动提取和拼接字符串。如,我的代码是这样的:
然后我对tmp进行parse的处理,就可以得到yyyy-MM-dd形式的Date类型时间。
二、从时间数据中获取Timestamp,并存入数据库
这里先说下Timestamp只有一种格式就是:yyyy-MM-dd hh:mm:ss.ff(这里最后的ff是毫秒)
我获取Timestamp代码如下:
然后在数据库操作的代码里用setTimestamp插入数据就行了:
技术相关更多文章猛击:哇啦天堂论坛技术区
要处理的问题:
我的情况是这样,我的程序会获得格式:XXXX年XX月XX日的日期,然后我要转化成XXXX-XX-XX形式,并存成timestamp形式时间信息存入数据库,为完成以时间排序的工作做好准备。
一、时间格式转换:
刚开始我获得了一个字符串,里面是一个日期:2012年10月1日。因为我想把这种格式用dateformat类解析成2012-10-01的形式,所以我在初始化一个格式的时候是这样的:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
然后我就弱弱用SimpleDateFormat的parse函数对我得到的字符串进行解析。然后用format妄想生成2012-10-01形式的结果。当时的代码是这样的:
format.format(format.parse(“2012年10月1日”));
。。。现在看来,我弱爆了!
后来仔细一看才发现parse和format功能类似一种互逆过程:
parse可以把传入的字符串按照format定义的格式从第一个字符开始解析,并转化成Date类型的时间。而format则可以把Date类型的时间数据转化成一个字符串。所以,上面的代码format.format(format.parse(“2012年10月1日”));仅仅想让他运行不报错,就要把format的格式定义成要处理的字符串中的时间格式:我们这里当然是应该定义成:
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");这样就可以把传入的时间“2012年10月1日”在String和Date两种类型间转化。
那么我想要形如yyyy-MM-dd的时间怎么办呢?
只能手工把yyyy年MM月dd日形式的时间通过字符串操作转化成形如yyyy-MM-dd的String,然后定义SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");对转化后的新String进行操作。
总结:所以无论你要处理什么格式的时间,在定义format的时候一定要定义和传入的时间格式一致的形式。DateFormat只能进行在同一种时间格式里做Date和String类型的转化。想换种时间格式,就要自己手动提取和拼接字符串。如,我的代码是这样的:
String tmp = datetext.substring(0, 4) + "-" + datetext.substring(5, 7) + "-" + datetext.substring(8, 10)";
然后我对tmp进行parse的处理,就可以得到yyyy-MM-dd形式的Date类型时间。
二、从时间数据中获取Timestamp,并存入数据库
这里先说下Timestamp只有一种格式就是:yyyy-MM-dd hh:mm:ss.ff(这里最后的ff是毫秒)
我获取Timestamp代码如下:
Timestamp ts = Timestamp.valueOf(tmp);
然后在数据库操作的代码里用setTimestamp插入数据就行了:
String sqlurl = "jdbc:mysql://localhost:3306/CityMaps?user=root&password=123456&useUnicode=true&characterEncoding=utf8"; connection = DriverManager.getConnection(sqlurl); PreparedStatement preparedStatement; preparedStatement = connection .prepareStatement("INSERT INTO News(type,title,summary,url,updatetime) VALUES(?,?,?,?,?)"); preparedStatement.setString(1, type); preparedStatement.setString(2, title); preparedStatement.setString(3, ""); preparedStatement.setString(4, url); preparedStatement.setTimestamp(5,updatetime); // 执行语句。 preparedStatement.executeUpdate();
技术相关更多文章猛击:哇啦天堂论坛技术区
相关文章推荐
- JavaScript下的时间格式处理函数Date.prototype.format
- DATE_FORMAT()数据库对时间进行处理
- 【Date】时间戳转化成Date时间格式处理
- JavaScript下的时间格式处理函数Date.prototype.format
- mysql日期函数From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT(后者只能格式化标准日期格式,时间戳的不行)
- JAVA时间格式的处理 SimpleDateFormat 类(小结)
- mysql日期函数From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT(后者只能格式化标准日期格式,时间戳的不行)
- 3.利用SimpleDateFormat()把字符串格式的时间转化为Date类型的时间
- JAVA获得UUID、获得当前时间(年月日,并转化为数据库存储的Timestamp、String格式)
- JAVA时间格式的处理 SimpleDateFormat 类(小结)
- Mysql date_format()函数处理时间格式
- Date.prototype.format,js下的时间格式处理函数
- 数据库时间格式,及nls_date_format
- 创建一个Date.text文件,获取当前的日期,将日期格式为“2013/02/14 05:20:00”的形式。然后一秒钟记录一次,将新的时间存入到文件中。
- mysql日期函数From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT(后者只能格式化标准日期格式,时间戳的不行)
- json换回的数据带时间格式 处理办法.toJSONStringWithDateFormat
- mysql时间格式函数:from_unixtime()、unix_timestamp()、date_format()
- 往数据库中保存时间格式为 yyyy/MM/dd (SimpleDateFormat )
- 自己做工具--js 时间戳转为日期格式封装方法date(format, timestamp)
- NSDateFormatter setDateFormat 自定义日期/时间格式