相关疑难解决方法(0)

使用JUnit测试比较日期

您好我是该站点的新用户,并且使用JUnit测试时我的应用程序出现问题.我的问题是,当我尝试将Date方法与自身进行比较时,它始终会失败.我在测试中打印了Date对象以查看问题,并始终以包名和随机字母结束.这是Date构造函数:

public class Date
{
SimpleDateFormat dformat = new SimpleDateFormat("dd-MM-yyyy");

private int day;
private int month;
private int year;

public Date() 
{
    String today;
    Calendar present = Calendar.getInstance();

    day = present.get(Calendar.DAY_OF_MONTH);
    month = present.get(Calendar.MONTH);
    year = present.get(Calendar.YEAR);

    present.setLenient(false);
    present.set(year, month - 1, day, 0, 0);

    today = dformat.format(present.getTime());
    System.out.println(today);
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

@Test 
public void currentDay()
{
    Date current = new Date();
    System.out.println(current);
    assertEquals("today:", current, new Date());
}
Run Code Online (Sandbox Code Playgroud)

但结果总是失败,我得到的结论是:

comp.work.wk.Date@d3ade7
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

java junit calendar date

16
推荐指数
3
解决办法
4万
查看次数

根据规范,在以毫秒为单位的日期上,evaluatePreconditions 的正确行为是什么?

在将我的 JAX-RS 应用程序从 Jersey 迁移到 Quarkus/Resteasy 时,我发现方法发生了行为变化evaluatePreconditions(Date lastModified)。事实上,在我的用例中,最后修改日期包含毫秒,不幸的是标题的日期格式If-Modified-Since并且Last-Modified不支持毫秒,正如我们在RFC 2616 中看到的那样。

Jersey 从提供的日期(正如我们在这里看到的)修剪毫秒数,而在 Resteasy 中,日期没有被修改,所以它实际上If-Modified-Since以不同的精度(分别是秒和毫秒)比较日期(来自标题的日期和提供的日期)以不匹配而告终,因此是 HTTP 状态代码200

说明问题的代码:

@Path("/evaluatePreconditions")
public class EvaluatePreconditionsResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public Response findData(@Context Request request) {
        final Data data = retrieveData();
        final Date lastModified = Timestamp.valueOf(data.getLastModified());
        final Response.ResponseBuilder responseBuilder = 
            request.evaluatePreconditions(lastModified);
        if (responseBuilder == null) {
            // Last modified date didn't match, send new content
            return Response.ok(data.toString())
                .lastModified(lastModified)
                .build();
        }
        // Sending …
Run Code Online (Sandbox Code Playgroud)

java jax-rs jersey resteasy quarkus

9
推荐指数
1
解决办法
362
查看次数

比较忽略毫秒的日期?

有没有办法比较两个日历对象,但忽略毫秒?

我写了一个比较两个日历对象的测试用例,但是有一个问题.虽然所有日,月,分和小时都匹配,但毫秒不匹配.我在获得实际日期之前得到预期日期:

/**
 * @return
 */
private Calendar getExpectedOneMonthDateFromCurrentDate() {
    Calendar expectedOneMonth = Calendar.getInstance();
    expectedOneMonth.add(Calendar.MONTH, -1);
    return expectedOneMonth;
}

assertEquals(getExpectedOneMonthDateFromCurrentDate(),
             DateRange.LAST_ONE_MONTH.getToDate());
Run Code Online (Sandbox Code Playgroud)

java datetime calendar

8
推荐指数
1
解决办法
1万
查看次数

如何比较Joda DateTime对象与可接受的偏移(容差)?

我想知道是否有任何标准API JodaTime来比较DateTime具有指定容差的2个对象?我正在寻找一个单线程,最好使用Joda标准API.不是像这篇文章中的时间aritmethic表达式.

理想情况下,它会是这样的:

boolean areNearlyEqual = SomeJodaAPIClass.equal(dt1, dt2, maxTolerance);
Run Code Online (Sandbox Code Playgroud)

谢谢!

java date jodatime

6
推荐指数
2
解决办法
1543
查看次数

标签 统计

java ×4

calendar ×2

date ×2

datetime ×1

jax-rs ×1

jersey ×1

jodatime ×1

junit ×1

quarkus ×1

resteasy ×1