首页>Program>source

我有两个 Calendar   对象,我想检查它们之间的小时数差异。

这是第一个维兹维兹

Calendar

第二个 Calendar c1 = Calendar.getInstance();

Calendar

现在让我们说 Calendar c2 = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); c2.setTime(sdf.parse("Sun Feb 22 20:00:00 CET 2015"));   是: c1.getTime()   和 Fri Feb 20 20:00:00 CET 2015   是 c2.getTime()

那么有什么代码可以返回第一个和第二个 Sun Feb 22 20:00:00 CET 2015之间的差异   在几个小时内? 就我而言,它应该返回 Calendar

48
最新回答
  • 7月前
    1 #

    您可以尝试以下操作:

    long seconds = (c2.getTimeInMillis() - c1.getTimeInMillis()) / 1000;
    int hours = (int) (seconds / 3600);
    

    或使用Joda-Time API的 Period   类,可以使用构造函数 public Period(long startInstant, long endInstant)   并检索小时字段:

    Period period = new Period(c1.getTimeInMillis(), c2.getTimeInMillis());
    int hours = period.getHours();
    

  • 7月前
    2 #

    在Java 8中,您可以做到

    long hours = ChronoUnit.HOURS.between(c1.toInstant(), c2.toInstant());
    

  • parsing:解决yacc / ocamlyacc中的减少/减少冲突
  • android:robospice如何管理活动生命周期?