如何从android中的SimpleDateFormate()获取时间?

问题描述:

我有一个字符串这样的: -如何从android中的SimpleDateFormate()获取时间?

Tue Oct 30 13:22:58 GMT+05:30 2012; 

我想从SimpleDateFormate划分时间&日期: -

DateFormat f = new SimpleDateFormat("EEE,MM/dd/yyyy hh:mm:ss); 
Date d = f.parse(my string); 
DateFormat date = new SimpleDateFormat("MM/dd/yyyy"); 
DateFormat time = new SimpleDateFormat("hh:mm:ss a"); 
System.out.println("Date: " + date.format(d)); 
System.out.println("Time: " + time.format(d)); 

我收到此错误: -

java.text.ParseException: Unparseable date: "Tue Oct 30 13:22:58 GMT+05:30 2012" 

请告诉我最新的问题。 谢谢, Deepanker

+0

看起来你给你的SimpleDateFormat格式为不正确。它不符合你的字符串格式。 –

你时刻字符串不匹配模式:

Tue Oct 30 13:22:58 GMT+05:30 2012 

没有办法像(更不用说在SimpleDataFormat初始化行语法错误):

EEE,MM/dd/yyyy hh:mm:ss 

所以您需要使模式与输入数据匹配。 SimpleDateFormat支持的所有字段are described here

确定日期是否正确? 因为我试图解析它 它给出了GMT+05:30 错误只是删除:30,它会工作,在这里看到:

String time = "Tue Oct 30 13:22:58 GMT+05 2012"; 
long f=Date.parse(time); 
System.out.println("Time:" + f); 
+0

我正在上面的字符串。你说得对。我认为现在我应该使用字符串拆分。 –

既然这样,你的时区偏移不匹配RFC 822标准,所以我不要以为你可以直接解析日期,而无需先对它进行一些清理。

如果你只是想一个偏移量,则该字符串应该是这样的:

Tue Oct 30 13:22:58 +0530 2012 

注意,没有“GMT”,而内偏移量,没有冒号。对应的模式则是:

new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy") 

或者,你可以指定时区:

Tue Oct 30 13:22:58 IST 2012 

对于该模式是:

new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy")