代码之家  ›  专栏  ›  技术社区  ›  cweston Given

将毫秒添加到Java日期,当毫秒很长时

  •  17
  • cweston Given  · 技术社区  · 15 年前

    添加

    这是我提议的一个解决方案。。。

    Calendar now = Calendar.getInstance();
    Calendar timeout = Calendar.getInstance();
    
    timeout.setTime(token.getCreatedOn());
    timeout.setTimeInMillis(timeout.getTimeInMillis() + token.getExpiresIn());
    

    还有其他建议吗?

    3 回复  |  直到 14 年前
        1
  •  26
  •   Jon Skeet    15 年前

    你的解决方案看起来 几乎 Date getTimeInMillis setTimeInMillis 适当考虑。

    setTime 设置时间单位:毫秒 这对我来说似乎有些多余。您的代码看起来相当于:

    Calendar timeout = Calendar.getInstance();
    timeout.setTimeInMillis(token.getCreatedOn().getTime() + token.getExpiresIn());
    

    Joda Time 不过:)一般来说 许多的 更好的日期/时间API。

        2
  •  23
  •   Dubas    7 年前

    import java.util.Date;
    
    long expiremilis = 60000l; //  1 minute
    // Expires in one minute from now
    Date expireDate = new Date(System.currentTimeMillis() + expiremilis);
    

    或者和日历一样

    long expiremilis = 60000l; // 1 minute
    Calendar expireDate= Calendar.getInstance();
    // Expires on one minute from now
    expireDate.setTimeInMillis(System.currentTimeMillis() + expiremilis);
    

    import java.util.Date;
    
    long expiremilis = 60000l; // 1 minute
    // Expires on one minute from the date object date
    Date expireDate = new Date(myDate.getTime() + expiremilis);
    

    以及现有的日历对象

    long expiremilis = 60000l; // 1 minute
    Calendar expireDate= Calendar.getInstance();
    // Expires on one minute from the calendar date
    expireDate.setTimeInMillis(myCalendar.getTimeInMillis() + expiremilis);
    
        3
  •  2
  •   reevesy onejigtwojig    14 年前

    日历是一个相当昂贵的日期对象,它的功能不是最好的。如果你想要一个通用的约会对象,我建议你看看 JODA Time 它有一个功能,可以满足你的需要。

    long timeoutMS = token.getCreatedOn() + token.getExpiresIn(); 
    

    推荐文章