java中日期格式的转换,String类型的如:03/Jun/2013这种格式的,怎样转换成yyyy-mm-dd格式的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中日期格式的转换,String类型的如:03/Jun/2013这种格式的,怎样转换成yyyy-mm-dd格式的?相关的知识,希望对你有一定的参考价值。

数据库中读取一个VARCHAR类型的字段,如03/Jun/2013:00:00:05,在java中截取年月日为03/Jun/2013,但是页面根据这个日期进行搜索,页面上是日期控件,输入的格式是yyyy-mm-dd,匹配不上。有什么解决方法吗?

把所有的格式都统一为yyyy-mm-dd。你的数据库类型是varchar把存入的字符串格式化一下不就OK?
java可以把各种格式的日期进行转化。你看看SimpleDateFormat这个应该能找到解决办法。追问

就是不知道怎么把VARCHAR类型转换成Date类型,如果是Date类型那么就好办了。这种03/Jun/2013:00:00:05字符串,我把该字段类型改成Date,Datetime或者timeStamp都报错。

好吧,我会了,分享一下吧,我用的mysql,取值的时候稍微做一下处理
select str_to_date(timeStr,'%d/%b/%Y')
from table;

%d 两位数字表示月中的天数( 00, 01, . . ., 31)
%b 缩写的月名( J a n u a r y, February, . . ., December)
%Y 四位数字表示的年份

参考技术A 从数据库获取的Date类型通过SimpleDateFormat来转换追问

03/Jun/2013:00:00:05 这一串在数据库中就是VARCHAR类型啊,不是Date类型的,如果是的话就好转了呀。

参考技术B 一个比较笨的办法:

if(data != null )
String year = data.substring(7, 11);
String month = data.substring(3, 6);
String date = data.substring(0,2);
if(month.equals("Jan"))
data = year + "-" + "01" + "-" + date;

if(month.equals("Feb"))
data = year + "-" + "02" + "-" + date;

if(month.equals("Mar"))
data = year + "-" + "03" + "-" + date;

if(month.equals("Apr"))
data = year + "-" + "04" + "-" + date;

if(month.equals("May"))
data = year + "-" + "05" + "-" + date;

if(month.equals("Jun"))
data = year + "-" + "06" + "-" + date;

if(month.equals("Jul"))
data = year + "-" + "07" + "-" + date;

if(month.equals("Aug"))
data = year + "-" + "08" + "-" + date;

if(month.equals("Sep"))
data = year + "-" + "09" + "-" + date;

if(month.equals("Oct"))
data = year + "-" + "10" + "-" + date;

if(month.equals("Nov"))
data = year + "-" + "11" + "-" + date;

if(month.equals("Dec"))
data = year + "-" + "12" + "-" + date;


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(data);追问

非常谢谢你。

在VB.NET中如何将日期类型转化为String型?

比如我从库里取出来是:2007/03/05 14:00:00我想转化为:20070305140000的格式,请指教,在线等.

参考技术A 在你对日期/时间进行格式化时,控制面板中的地区与语言选项部分的设置会影响你所得到的结果。那些设置用来初始化DateTimeFormatInfo对象,这个对象与当前线程的文化有关,并提供控制格式的值。

Dim dateTimeInfo as DateTime = DateTime.Now

MessageBox.Show (dateTimeInfo)

Dim strMonth as String = dateTimeInfo.ToString("F")

MessageBox.Show(strMonth)

上面的代码定义了日期时间变量dateTimeInfo并将其值设为当前日期/时间。然后,我再定义字符串变量strMonth并将dateTimeInfo的值转换为"带长时间的完整日期/时间"格式下的字符串。

下面是一个标准日期格式说明符列表:

d:短日期
D:长日期
t:短时间
T:长时间
f:带短时间的完整日期/时间
F:带长时间的完整日期/时间
g:带短时间的一般日期/时间
G:带长时间的一般日期/时间
M或m:月-日
R或r:RFC1123
s:遵守ISO 8601的可分类日期/时间
u:国际可分类日期/时间
U:带长时间的完整日期/时间。(此格式与F相同,但它用于国际GMT时间。)
Y或y:年-月

以上是关于java中日期格式的转换,String类型的如:03/Jun/2013这种格式的,怎样转换成yyyy-mm-dd格式的?的主要内容,如果未能解决你的问题,请参考以下文章

Java日期类型格式转化

Java String类型转换成Date日期类型

如何将JAVA DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?

java日期类型转换总结date timestamp calendar string

java怎么将String转换成日期

java怎么将String转换成日期