将String转换为Date异常

时间:2014-08-04 14:37:16

标签: java android

我知道这个问题已被问到很多,但我找不到我的解决方案。我有一个应用程序,我将字符串转换为日期,我总是捕获异常。我要转换的字符串格式为: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");
}

4 个答案:

答案 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);