2 回答
TA贡献1772条经验 获得超6个赞
你可以用时间API的使用没有检查string到timestamp转换操作。
您的日期字符串是07.10.2018 08:45:00.
如果将此字符串转换为TimeStamp值,请使用此代码;
final Timestamp timestamp =
Timestamp.valueOf(LocalDateTime.of(LocalDate.of(2018, 10, 7), LocalTime.of(8, 45, 0)));
然后比较两个时间戳,其中一个来自您的convertStringToTimestamp方法,另一个来自timeStamp我提供的代码。
所以最终的代码应该是这样的;
IDManager test = new IDManager();
Timestamp output = test.convertStringToTimestamp("07.10.2018 08:45:00");
final Timestamp timestamp =
Timestamp.valueOf(LocalDateTime.of(LocalDate.of(2018, 10, 7), LocalTime.of(8, 45, 0)));
Assert.assertEquals("TimeStamps should match!", timestamp, output);
TA贡献1785条经验 获得超4个赞
我想给你一个关于 OffsetDatetime 的非常简短的例子,它应该类似地工作。
重要的是,对于单元测试,您可以很好地定义预期结果。所以你告诉测试你期望什么,然后将它与期望的结果和行为进行比较。
请看一下:
@Test
public void shouldReturnTimestamp() throws Exception {
//Given
final String toParse = "2018-10-05T14:49:27.000+02:00";
final OffsetDateTime expected = OffsetDateTime.of(2018, 10, 05, 14, 49, 27, 0, ZoneOffset.ofHours(2));
//When
final OffsetDateTime actual = new OffsetDateTimeConverter().apply(toParse);
//Then
assertThat(actual).isEqualTo(expected);
}
class OffsetDateTimeConverter implements Function<String, OffsetDateTime> {
@Override
public OffsetDateTime apply(final String s) {
return OffsetDateTime.parse(s);
}
}
它有什么帮助吗?
添加回答
举报