使用joda库按指定的间隔增加时间

时间:2014-08-09 05:13:06

标签: java jodatime

 public Map<Integer , String> Timeinterval(int value)
    {
    int i = 1440/value ;
    Map<Integer, String> timeInt = new HashMap<Integer, String>() ;
    DateTimeFormatter formatter = null ;
    for(int a=0 ; a< i ; a++)
    {
    formatter = DateTimeFormat.forPattern("HH:mm");
    LocalTime time = formatter.parseLocalTime("09:00");
    time = time.plusMinutes(value);

    timeInt.put(a,time.toString() );
    }

    return timeInt;
    }

参数值在运行时从JSP获取值

当控制到达formatter = DateTimeFormat.forPattern("HH:mm")时,它无法超越这一点。 我按下cntrl + shift + I执行了这部分DateTimeFormat.forPattern("HH:mm")并得到了这条消息:

  

无法解析类型:org.joda.time.format.DateTimeFormat

如果代码

有任何其他问题,请告诉我

基本上我想做的是增加时间,例如:如果时间是09:00并且我想将它递增30然后它应该变成09:30并且这一直持续直到满足时间循环条件。当我在网上研究时,我发现Joda库更容易用于完成这些任务。

1 个答案:

答案 0 :(得分:0)

你的问题不干净。 Joda时间的LocalTime确实支持plusMinutes(int),这正是您所寻找的。

当然你需要在循环之外设置时间:

Map<Integer, String> timeInterval(int perDay)
{
    int minutes = 1440/perDay ;
    Map<Integer, String> timeInt = new HashMap<Integer, String>() ;
    LocalTime time =  DateTimeFormat.forPattern("HH:mm").parseLocalTime("09:00");

    for(int i=0; i < perDay; i++) {
        timeInt.put(i,time.toString());
        time = time.plusMinutes(minutes);
    }

    return timeInt;
}