Java 如何发现Joda时间的差异
我试图使用Joda Time的Java 如何发现Joda时间的差异,java,jodatime,Java,Jodatime,我试图使用Joda Time的Interval类,但无法使用其构造函数。它不采用这种格式 我试图以yyyy-MM-dd HH:MM:ss格式从mysql数据库中提取两个DateTime,并以String格式检索。我试图将其转换为日期格式,但interval类无法采用日期格式。请帮忙我该用什么 String text = "2011-10-02 18:48:05"; String text2 = "2011-10-02 18:50:05"; SimpleDateFormat
Interval
类,但无法使用其构造函数。它不采用这种格式
我试图以yyyy-MM-dd HH:MM:ss
格式从mysql数据库中提取两个DateTime
,并以String
格式检索。我试图将其转换为日期格式,但interval类无法采用日期格式。请帮忙我该用什么
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());
}
不要使用
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);
我能够在joda time中使用以下代码获得分钟差:
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());
我非常喜欢,我用的是joda time的旧日期格式。这正是我需要的。我可以很容易地从中获取分钟数。通过
interval.toDuration().getStandardMinutes()
获得的分钟数长度。为true,但它返回的是double而不是int