我知道这个问题已被问到很多,但我找不到我的解决方案。我有一个应用程序,我将字符串转换为日期,我总是捕获异常。我要转换的字符串格式为:Mon, Aug 4, 2014
。这是我的代码:
try {
Date d = new SimpleDateFormat("EEE, MM d, yyyy").parse(theStringToConvert);
Log.i("MyApp", "Date: " + d);
}
catch (ParseException e){
Log.i("EXCEPTION", "Cannot parse string");
}
答案 0 :(得分:8)
“MM”是“两位数月份”。你想要“MMM”作为“缩写月份名称”。此外,您应该指定语言环境,以便它不会尝试在用户的语言环境中解析它 - 假设它真的 总是英语:
import java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args) throws Exception {
String text = "Mon, Aug 4, 2014";
DateFormat format = new SimpleDateFormat("EEE, MMM d, yyy",
Locale.US);
Date date = format.parse(text);
System.out.println(date);
}
}
答案 1 :(得分:0)
您应该看看ParseExeption
完全说出的内容。解析你的字符串应该由计算机完成,而不是由人类完成。
无论如何,我能看到的第一个问题是,你必须写三个M
而不是两个:
EEE, MMM d, yyyy
。
答案 2 :(得分:0)
class Check{
public static void main(String args[])throws ParseException{
String str="Mon, Aug 4, 2014";
java.util.Date date=new SimpleDateFormat("EEE, MMM d, yyyy",Locale.ENGLISH).parse(str);
System.out.println(date);
}
}
答案 3 :(得分:0)
在你的字符串月不是数字的。解析字符串
Date d = new SimpleDateFormat("EEE, MMM d, yyy",Locale.US).parse(theStringToConvert);