如何从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
答
你时刻字符串不匹配模式:
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")
看起来你给你的SimpleDateFormat格式为不正确。它不符合你的字符串格式。 –