关于日期格式化的一个小问题

近期在维护一个老项目,前台传过来的日期类型是一个String "2014-7-30"这样,数据库设计是Date类型,所以根据时间做查询肯定需要将String类型转化为Date类型,ok!

那么我们看这段代码:

public static void main(String[] args) throws Exception {
		String str="2014-7-30";
		SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
		System.out.println(f.format(f.parse(str)));
	}

这个应该是网上各大网友互相抄袭的转化方式?我找了几张博客,都是这样写的。but

运行实际结果呢?

没错呀,先通过parse转化为Date类型,然后将Date类型格式化啊,但是大家注意没?SimpleDateFormat.parse()方法返回的是一个Date类型数据,也就是说他会按照你自定义的格式类型进行转换成Date类型,那么显然不是我们想要的。

那么我们再看DateFormat.getDateInstance()返回的值呢?日期格式型的Date数据。

所以假如,你自定义的时间类型和String 格式不一致,就会转换出错。ok!

代码如下:

package jiki.test;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test3 {
	public static void main(String[] args) throws Exception {
		String str="2014-7-30";
//		String str = "2013-01-21 15:10:20";  
//		Date date = DateFormat.getDateInstance().parse(str);
//		System.out.println(date);
//		SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
		SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
		System.out.println(f.format(f.parse(str)));
//		System.out.println(f.parse(str));
//		getTime(str);
	}
	/*public static void getTime(final String str) throws Exception{
		Date date = DateFormat.getDateInstance().parse(str);
		System.out.println(date);
		SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
		System.out.println(f.format(date));

	}*/
}

为了讲解随手写的小玩意,大家可以自己运行看一下!免得犯错误!

关于日期格式化的一个小问题,布布扣,bubuko.com

时间: 2024-10-09 23:13:27

关于日期格式化的一个小问题的相关文章

日期插件的一个小特效实现

html代码<div class="Date_selection" style="display:none"> <span class="label_name">开始日:</span><p class="laydate-icon" id="start" style="width:200px; margin-right:10px; height:30px;

一个JavaScript日期格式化扩展函数

我们都知道在Java和PHP语言中,有专门用于格式化日期对象的类和函数,例如Java中的DateFormat等等,通过这些类和函数,我们可以方便的将一个日期对象按照格式的要求输出为字符串,例如对于同一个日期2006年12月25日,需要的显示格式可能如下: 2010年12月25日,2010-12-25,12-25-2010等等. 在Javascript之中,日期对象是Date,那么如何将一个日期对象按照定制的格式进行输出呢? Date对象有有四个内置方法,用于输出为字符串格式,分别为:广德县能源局

SQL查询一个月第一天/最后一天及日期格式化

1.一个月第一天的Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜Select DATEADD(dd,

关于处理日期格式化问题遇到的一个坑

下面记录了一个自己在写日期格式化的过程中一直没有看出来的问题,后来经过自己仔细检查,终于发现了问题所在. 原来是自己传入的格式化的字符串不规范.下图,展示了错误的写法和正确的写法.

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符

django 过滤器 、日期格式化参数

django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格式和数据库中存放的格式不一致,比如数据库字段内容为2012-08-26 16:00:00,但是页面显示的却是Aug. 26, 2012, 4 p.m. 为了页面和数据库中显示一致,需要在页面格式化时间,需要添加<td>{{ dayrecord.p_time|date:"Y-m-d H:i:s" }}</td> 类似的过滤器.刷新页面,即可正常显示. 过滤器相关: 一.形式

日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别

日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别 {0:yyyy-MM-dd HH:mm:ss.fff}:使用24小时制格式化日期{0:yyyy-MM-dd hh:mm:ss.fff}:使用12小时制格式化日期 以下同理,从左至右分别为-年-月-日 时:分:秒.毫秒{0:yyyy-MM-dd HH:mm:ss zzz}{0:yyyy-MM-dd HH:mm:ss.ff zzz}{0:yyyy-MM-dd HH:mm:s

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

C# DateTime日期格式化

转自polk6原文 C# DateTime日期格式化 在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. 自定义格式类型 1. 分类 DateTime调用ToString()传入的参数可分为制式和自定义两种: 1) 制式:系统自带的,转入特定的单个字符就可转换为系统已设定好的格式. 2) 自定义:自由组合日期代码(y.M.d.h.m.s.f)来展示丰