如何从String创建有效的DateTime对象

时间:2014-03-21 12:06:25

标签: android jodatime

我有以下字符串。

21-Mar-2014

如何将其转换为有效的Joda DateTime对象?

我已经尝试了下面的事情,没有任何快乐:

DateTimeFormatter formatter = DateTimeFormat.forPattern("d-MMM/Y");
            DateTime dt = formatter.parseDateTime(date);

提前致谢

马特

5 个答案:

答案 0 :(得分:2)

SO的问题已经有很多了。 检查this

答案 1 :(得分:1)

使用更正的模式字符串和明确的Locale

的真正的joda答案
String input = "21-Mar-2014";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yyyy").withLocale(Locale.ENGLISH);
DateTime dt = dtf.parseDateTime(input); // using the default time zone
System.out.println(dt); // 2014-03-21T00:00:00.000+01:00 (my zone: Europe/Berlin)

如果您不需要时间(关于您的输入!),我建议使用:

LocalDate date = dtf.parseLocalDate(input);

答案 2 :(得分:0)

    String dateInString = "7-Jun-2013";
try {

    Date date = formatter.parse(dateInString);
    System.out.println(date);
    System.out.println(formatter.format(date));

} catch (ParseException e) {
    e.printStackTrace();
}

答案 3 :(得分:0)

你可以试试这个

Date date1;
String myFormatString = "MMM-dd-yyyy"; // for example
String Your_Date=txtDate.getText().toString();
SimpleDateFormat df = new SimpleDateFormat(myFormatString);
date1 = df.parse(Your_Date);

答案 4 :(得分:0)

您只需使用以下简单日期格式

SimpleDateFormat sdf=new SimpleDateFormat("d-MMM-yyyy");
Date date1=sdf.parse("21-Mar-2014");

试试这个

    DateTimeFormatter formatter = DateTimeFormat.forPattern("d-MMM-yyyy");
                DateTime dt = formatter.parseDateTime(date);
System.out.println(dt.toString());