我有以下字符串。
21-Mar-2014
如何将其转换为有效的Joda DateTime对象?
我已经尝试了下面的事情,没有任何快乐:
DateTimeFormatter formatter = DateTimeFormat.forPattern("d-MMM/Y");
DateTime dt = formatter.parseDateTime(date);
提前致谢
马特
答案 0 :(得分:2)
SO的问题已经有很多了。 检查this。
答案 1 :(得分:1)
使用更正的模式字符串和明确的Locale
:
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());