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 四位数字表示的年份
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 DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?