如何转换日期格式?

时间:2014-04-09 12:03:46

标签: java date date-format simpledateformat date-parsing

所以我有这个字符串:“Tue Apr 15 00:00:00 IDT 2014”或“2014年4月15日”之后我通过拆分来改变它。 我想将它转换为这种格式:“yyyy-MM-dd”但是当我收到此消息时:

java.text.ParseException: Unparseable date: "Apr 15 2014"

这是我的完整代码:

DateFormat or=new SimpleDateFormat("MMM d yyyy");
            DateFormat tr=new SimpleDateFormat("yyyy-MM-dd");
           String str="Apr 15 2014";

            System.out.println(str);
            //String strs[]=str.split(" ");
            //String newDay=strs[1]+" "+strs[2]+" "+strs[5];
            //System.out.println(newDay);
            try {
                Date d1=or.parse(str);
                System.out.println(d1);
            } catch (ParseException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

感谢帮助者:)

5 个答案:

答案 0 :(得分:0)

代码:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(todaysDate);

答案 1 :(得分:0)

输入字符串中的月份字段值可能与默认Locale中的月份字段值不匹配。尝试

DateFormat format = new SimpleDateFormat("MMM d yyyy", Locale.ENGLISH);
...
Date date = format.parse(str);

注意:不是操纵原始的String,而是可以直接使用

进行解析
DateFormat format = 
    new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);

答案 2 :(得分:0)

    public static Date getDateFromString(String format, String dateStr) {

            DateFormat formatter = new SimpleDateFormat(format);
            Date date = null;
            try {
                date = (Date) formatter.parse(dateStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }

            return date;
        }

-----------------

    public static String getDate(Date date, String dateFormat) {
        DateFormat formatter = new SimpleDateFormat(dateFormat);
        return formatter.format(date);
    }

答案 3 :(得分:0)

我对您的代码进行了以下更改:

        **DateFormat or = new SimpleDateFormat("MMM dd yyyy");**
    new SimpleDateFormat("yyyy-MM-dd");
    String str = "Apr 15 2014";

    System.out.println(str);
    //String strs[]=str.split(" ");
    //String newDay=strs[1]+" "+strs[2]+" "+strs[5];
    //System.out.println(newDay);
    try {
        Date d1 = or.parse(str);
        System.out.println(d1);
    } catch (ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

我得到了以下输出:

Apr 15 2014

Tue Apr 15 00:00:00 BST 2014

答案 4 :(得分:0)

java.util.Date  ss1=new Date("Tue Apr 15 00:00:00 IDT 2014");
SimpleDateFormat formatter5=new SimpleDateFormat("yyyy-MM-dd");
String formats1 = formatter5.format(ss1);
System.out.println(formats1);