2

我正在尝试使用IntervalJoda Time 类,但我无法使用它的构造函数。它不采用格式。

我正在尝试以DateTime格式从 mysql DB 中提取两个,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());

        }
4

2 回答 2

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);
于 2013-02-08T15:05:51.967 回答
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());
于 2013-02-08T15:25:32.537 回答