有些业务逻辑是基于时间的,测试起来比较麻烦,如果用joda datetime就很容易了
比如: 在new Report中有这样的逻辑:
public Report(double energyTotal, double outputEnergy, double outputpower, String clientId, ReportQueryType type) { this.clientId = clientId; this.energyTotal = energyTotal; this.outputEnergy = outputEnergy; this.outputpower = outputpower; this.reportDate = DateTime.now().withTimeAtStartOfDay().getMillis(); this.monitorDate = DateTime.now().getMillis(); this.reportType = type.toValue(); }
字段的赋值用的是系统当前时间, 如何测试?
用joda datetime 时可以这样
// given DateTime date = now().withTimeAtStartOfDay(); List<Report> hourlyReports = newArrayList(); setCurrentMillisFixed(date.withHourOfDay(1).getMillis()); hourlyReports.add(buildSimpleReport("inverter1", 200, 20, 10, DATE_TREND)); setCurrentMillisFixed(date.withHourOfDay(2).getMillis()); hourlyReports.add(buildSimpleReport("inverter1", 201, 21, 11, DATE_TREND)); setCurrentMillisFixed(date.withHourOfDay(3).getMillis()); hourlyReports.add(buildSimpleReport("inverter1", 202, 22, 12, DATE_TREND)); setCurrentMillisSystem();
注意这里
setCurrentMillisFixed(......);指定当前系统时间的值
setCurrentMillisSystem();恢复当前系统时间为正常的系统时间.
相关推荐
jorg.joda.time.DateTime引用jar包,包括joda-time-2.4.jar、joda-time-2.4-javadoc.jar、joda-time-2.4-sources.jar等以及src代码
Joda-Time的核心类`org.joda.time.DateTime`提供了丰富的构造函数和方法,使得开发者能够方便地进行日期和时间的运算。 **二、核心概念** 1. **DateTime**: Joda-Time的中心类,代表一个具体的日期和时间,包括年...
`DateTime` 类是 Joda-Time 中的核心类之一,用于表示精确到毫秒的日期和时间。 ```java DateTime in = new DateTime(); ``` `DateTime` 类提供了丰富的方法来获取日期和时间的各种组件,例如: - `now()`:返回...
- `DateTime`:这是Joda-Time的主要类,代表了一个精确的日期和时间,包括时区信息。 - `LocalDate`和`LocalTime`:分别代表日期和时间,不包含时区信息,适合处理不涉及时区转换的情况。 - `LocalDateTime`:...
3. **测试与调试**:编写单元测试,验证Joda-Time的功能是否正常工作,通过调试源码,深入理解其实现逻辑。 总结,Joda-Time 2.4作为日期时间处理的利器,通过其丰富的API和优秀的设计,极大地简化了开发者在日期...
1. **DateTime**: Joda-Time的主类,代表一个特定的日期和时间,包括年、月、日、时、分、秒和纳秒。DateTime相比java.util.Date,增加了对闰秒的支持。 2. **LocalDate**: 表示日期,不包含时间信息。对于只需要...
《Joda-Time 2.5:Java日期时间处理的得力助手》 Joda-Time是Java平台上一个著名的日期和时间处理库,它弥补了Java标准库中日期时间处理的不足。2.5版本是Joda-Time的一个关键更新,带来了诸多改进和新特性,受到了...
Joda-Time的核心类包括`DateTime`、`LocalDate`、`LocalTime`和`LocalDateTime`,它们分别对应于带有时区的日期和时间、不带时区的日期、不带时区的时间以及不带时区的日期和时间。这些类提供了大量的构造函数和方法...
赠送jar包:joda-time-2.8.1.jar 赠送原API文档:joda-time-2.8.1-javadoc.jar 赠送源代码:joda-time-2.8.1-sources.jar 包含翻译后的API文档:joda-time-2.8.1-javadoc-API文档-中文(简体)版.zip 对应Maven信息...
《Joda-Time库详解——基于2.5版本》 在Java编程中,日期和时间处理是常见的需求,但Java标准库中的日期API一直备受诟病,功能有限且使用不便。为了解决这个问题,Joda-Time库应运而生。本文将深入探讨Joda-Time ...
joda-time-2.1.jar
**Joda-Money库详解** Joda-Money是一款专门针对Java平台设计的开源库,用于高效、方便地处理和表示货币金额。它为Java开发者提供了一套强大的工具,以应对在金融计算和货币操作中遇到的各种挑战。在这个库中,货币...
1. **精确定义的时间模型**:Joda-Time提供了基于`DateTime`的精确时间模型,它不仅包含了年、月、日、时、分、秒,还包含了纳秒级别的时间精度,这在处理高精度时间计算时非常有用。 2. **区域设置支持**:Joda-...
**Joda-Time for Android**,一个专为Android平台优化的时间日期处理库,是对标准Java日期时间API的一个强大补充。在Android开发中,由于系统默认的日期时间处理功能相对有限且性能不佳,开发者经常会选择Joda-Time...
1. **DateTime**:这是Joda-Time中的核心类,代表一个特定的日期和时间点,包括年、月、日、小时、分钟、秒和毫秒。与`java.util.Date`相比,DateTime提供了更丰富的操作方法。 2. **LocalDate**和**LocalTime**:...
赠送jar包:joda-time-2.10.8.jar; 赠送原API文档:joda-time-2.10.8-javadoc.jar; 赠送源代码:joda-time-2.10.8-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.8.pom; 包含翻译后的API文档:joda-time-...
赠送jar包:joda-time-2.10.4.jar; 赠送原API文档:joda-time-2.10.4-javadoc.jar; 赠送源代码:joda-time-2.10.4-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.4.pom; 包含翻译后的API文档:joda-time-...
Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取...
<bean id="jodaTimeFormattingConverter" class="org.springframework.format.datetime.joda.JodaTimeHttpMessageConverter"> <!-- 添加其他已经存在的转换器 --> ``` 这段配置告诉Spring MVC使用...