如何在Joda时间找到差异

时间:2013-02-08 15:01:24

标签: java jodatime

我正在尝试使用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());

        }

2 个答案:

答案 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());