我正在尝试使用Joda Time的Interval
类,但我无法使用它的构造函数。它不采用这种格式。
我试图以DateTime
格式从mysql数据库中提取两个yyyy-MM-dd HH:mm:ss
,并以String
格式检索它。我试图将其转换为日期格式,但间隔类无法采用日期格式。请帮助我应该使用什么???
String text = "2011-10-02 18:48:05";
String text2 = "2011-10-02 18:50:05";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date olddate=sdf.parse(text);
Date newdate=sdf.parse(text2);
System.out.println(olddate);
System.out.println(newdate);
// Interval interval = new Interval(olddate, newdate);
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Error at Timestamp subtract Format function Dategenerator" + ex.getMessage());
}
答案 0 :(得分:5)
请勿使用java.util.Date
,而应使用Joda Time org.joda.time.DateTime
。
对于解析使用Joda Time的org.joda.time.format.DateTimeFormat
。
这应该有效:
String text = "2011-10-02 18:48:05";
String text2 = "2011-10-02 18:50:05";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime oldDate = formatter.parseDateTime(text);
DateTime newDate = formatter.parseDateTime(text2);
System.out.println(oldDate);
System.out.println(newDate);
Interval interval = new Interval(oldDate, newDate);
System.out.println(interval);
答案 1 :(得分:1)
我能够在joda时间使用此代码获得分钟差异:
String text = "2011-10-02 15:48:05";
String text2 = "2011-10-02 18:52:10";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime oldDate = formatter.parseDateTime(text);
DateTime newDate = formatter.parseDateTime(text2);
System.out.println(oldDate);
System.out.println(newDate);
Interval interval = new Interval(oldDate, newDate);
System.out.println(interval.toDuration().toPeriod().getHours()*60+ interval.toDuration().toPeriod().getMinutes());