我有一个非常简单的问题 - 我在这里阅读了几个主题,但我仍然不明白如何变得简单。我想发送字符串到方法并获取joda日期。我没有问题建立它,但返回格式是2015-03-11T17:13:09:000 + 01:00。如何从下面提到的方法中获得所需的(例如mmm-dd hh:mm)格式(它必须是用于FX表单上的排序目的的dateTime)?我试图用另一个dateTimeFormatter赌博,但没有运气。非常感谢您提前
public static DateTime stringToDateTime(String textDate) throws ParseException
{
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
DateTime jodaTime = dateTimeFormatter.parseDateTime(textDate);
return jodaTime;
}
答案 0 :(得分:0)
你是什么意思"返回格式"? "格式"这里的术语只能与DateTime
对象的字符串表示相关。这意味着您应该指定输入字符串的格式(您已经在代码中完成的内容) - 并且将创建相应的DateTime
对象。之后你可能会使用toString()
检查结果,但DateTime.toString()
根据JavaDoc使用ISO8601格式(yyyy-MM-ddTHH:mm:ss.SSSZZ) - 这样就可以获得{ {1}}结果。
因此,为了获得所需,您可以尝试使用所需格式的2015-03-11T17:13:09:000+01:00
方法。但是再一次 - 它只是将toString(String pattern)
转换为DateTime
的输出格式,不会影响String
中存储的日期时间对象。
答案 1 :(得分:0)
我只使用Calendar对象,所以这是一种可行的方法:
static String stringToDateTime(String textDate) {
Calendar c = new GregorianCalendar();
// How you want the input to be formatted
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = df.parse(textDate);
c.setTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
// How do you want to print your date
df= new SimpleDateFormat("dd-MM-yy");
return df.format(c.getTime());
}
// input
String myDate = "2015-04-15 14:25:25";
System.out.println(stringToDateTime(myDate));