2013-03-26 98 views
5

我正在开发一个春天的应用程序,并在我的控制器之一,我有以下几行来解析字符串日期和格式化解析日期到所需的格式。但是,我又需要将格式化的字符串解析为日期而不使用任何SimpleDateFormat,那么可以这样做吗?在不使用SimpleDateFormat的情况下将字符串解析为日期?

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd"); 

Date pick=dateFormat.parse(request.getParameter("pickDate")); 
String pick_date=dateFormat2.format(pick); 
+0

是什么使用SimpleDateFormat的问题? – 2013-03-26 04:50:18

+0

为什么你不能使用'SimpleDateFormat'? – 2013-03-26 04:50:32

+0

您应该避免使用SimpleDataFormat,因为它不是线程安全的。 – OQJF 2013-03-26 04:54:45

回答

5

编辑:

我在维基百科中发现,中国的语言环境YYYY-MM- DD。检查这个参考date format by country 地方设置到中国,你会得到所需的日期格式

试试这个

String d1="12-27-2010"; 
    Stirng[] splitdata=d1.split("-"); 

    int month=Integer.parseInt(splitdata[0]); 
int day=Integer.parseInt(splitdata[1]); 
int year=Integer.parseInt(splitdata[2]); 

Calender cal=Calender.getInstance(Locale.CHINA); 
cal.set(year,month,day); 
Date d=cal.getTime(); 

这应该工作


如果你知道你的数据格式,你可以去做。通过使用简单的字符串操作

例: 如果你的数据格式是

MM-DD-YYYY

那么你就可以转换为yyyy-MM-dd这样

String d1="12-27-2010"; 
Stirng[] splitdata=d1.split("-"); 

String s2= splitdate[2]+"-"+splitdate[0]+"-"+splitdate[1]; 
+0

但是如何将它解析回日期? 's2'在你的例子中只是字符串不是Date对象。 – 2013-03-26 05:04:54

+0

@WannabeGeek对不起,回复迟了,也是错误的答案。我会尽快回复你 – Pragnani 2013-03-26 05:13:06

+0

我很感谢你的努力,谢谢你的回答。我会尝试你的答案并回复你。 – 2013-03-26 05:19:33

-1

是可能的;只需编写代码来进行解析。不应该是困难的......

+2

如何在不使用SimpleDateFormat的情况下做到这一点? – 2013-03-26 04:50:50

+1

就像你编程任何其他的东西一样。拿起字符串,分解它,'阅读'字符串,从中找出一个日期。我的意思是如果你不使用内置的语言库,你必须自己实现它。谁写的SimpleDateFormat确实写了解析代码。你可以写一些类似的东西。而网络搜索应该也会产生示例代码。 但大部分时间都是徒劳的运动......很难做到正确。 SimpleDateFormat的问题究竟是什么? – Amit 2013-03-26 04:53:54

0

您可以使用连接运算符(+)为

相关问题