- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试计算三月份两个日期之间的天数,但得到了错误的结果。
何时 dateBefore
是 01/03/2017 和 dateAfter
是 31/03/2017,diff
是 29 天,但应该是 30 天 (31-1)?
public static int daysBetweenDates2(Date dateBefore, Date dateAfter) {
long diff = (dateAfter.getTime() - dateBefore.getTime())/(24*60*60*1000);
return (int)diff;
}
最佳答案
我建议不要使用java.util.Date
。有点尴尬。如果您被允许使用第三方库,我推荐 JSR-310 向后移植。
由于您使用的是 Android,因此即使您使用 jack 编译器,也需要像在标准 Java 7 项目中一样包含此库,因为 java.time
不是尚未在 Android SDK 中提供。
在您应用的 build.gradle
依赖项列表中,您可以添加 Threeten 库的 Android 适配:
compile "com.jakewharton.threetenabp:threetenabp:1.0.4"
...如果您需要能够运行使用 Threeten 的标准 Java 单元测试,您可以排除 Android 部分并通过添加该库本身来包含 Threeten 库本身(如果您使用 Roboelectric,则可能没有必要,但我我不是 100% 确定):
testCompile ('org.threeten:threetenbp:1.3.2') {
exclude module: 'com.jakewharton.threetenabp:threetenabp:1.0.3'
}
然后您需要它来初始化应用程序中的 Android 库:
// e.g. in your Application subclass
@Override
public void onCreate() {
AndroidThreeTen.init(this);
}
现在你可以这样做:
LocalDate dateBefore = LocalDate.of(2017, 3, 1);
LocalDate dateAfter = LocalDate.of(2017, 3, 31);
long daysBetween = ChronoUnit.DAYS.between(dateBefore, dateAfter);
assertEquals(30, daysBetween);
关于java - 三月两个日期之间的天数差异错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40369962/
我得到了一个带有日期的抓取字符向量。我的问题:使用 as.Date() 时,每个包含月份名称“März”(= 在德语中表示“三月”)的日期都是 NA ed。这是为什么? 这是一个(希望可重现的)示例:
使用 Highcharts,是否可以按月绘制柱形图(如一月、二月、三月),作为数据我有时间戳,但无法将数据分组到每个月的列。 http://jsfiddle.net/k6onhj2x 在这里输入代码
所以,我将每月的第一天设为 2019-04-01T00:00:00.000Z 当我使用 moment(date).month() 时,它返回 2,而不是 3。所以,我收到的是三月,而不是四月。 它有什
我是一名优秀的程序员,十分优秀!