java - 如何将现有日期对象中的日期部分替换为当前日期

标签 java android date time

我有一个从 JSON 解析的日期对象,格式如下:

String date = getJsonDateFromServer(); 
Date result = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(date);

但我只对时间部分感兴趣(没有月、年、日等)。 所以我的问题是:如何正确替换日期部分(月、年、日)而不丢失时区信息?

我最终想做的是:

(1) 解析两个日期(没有日期信息)。开始和结束时间

(2) 如果“dw”位于 (1) 中定义的开始时间和结束时间之间,则检查另一个日期“dw”(带有日期信息)

例如:

Date start = parse(18:00 +02:00);
Date end = parse(20:00 +02:00);
Date     dw=new Date();
boolean inBetween = dw>= start && dw <= end;

如何做到这一点?

/更新: 我以这种方式实现它用于测试目的:

public boolean isActiveOn(Date date) {

    Calendar toCheck = Calendar.getInstance();
    toCheck.setTime(date);

    Calendar cal_start = Calendar.getInstance();
    cal_start.setTime(this.time_begin);
    cal_start.set(toCheck.get(Calendar.YEAR), toCheck.get(Calendar.MONTH),
            toCheck.get(Calendar.DAY_OF_MONTH));

    Calendar cal_end = Calendar.getInstance();
    cal_end.setTime(this.time_end);
    cal_end.set(toCheck.get(Calendar.YEAR), toCheck.get(Calendar.MONTH),
            toCheck.get(Calendar.DAY_OF_MONTH));

    boolean after_start = toCheck.after(cal_start);
    boolean before_end = toCheck.before(cal_end);
    return after_start && before_end;
}

但是,当 this.time_begin、this.time_end 和 date 中设置不同的时区时,这不会导致问题吗?

最佳答案

您所要做的就是:

String date = getJsonDateFromServer(); 
Date result = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(date);

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ssZ")
Date timeOnly = dateFormat.parse(dateFormat.format(result));

现在您有了一个仅包含时间和时区的日期。

这是比较代码:

Date start = dateFormat.format(result);
Date end = dateFormat.format(resultNr2);
Date dw = dateFormat.format(resultNr3);
boolean inBetween = dw.after(start) && dw.before(end);

关于java - 如何将现有日期对象中的日期部分替换为当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19401824/

相关文章:

java - 将人类可读日期转换为 Java 日期对象

java - 仍然运行 Java 的演示系统的小型 Linux 发行版

java - 我可以用 Java 创建自己的缓存吗?不是第 3 方框架?

Android Studio Compose Material3 模板主题

带有过滤器的android Xml-List View

Python 公共(public)假期在工作日

Excel:文本字符串到日期的转换

java - 我可以使用什么 Java 库来处理 WSDL 文件?

java - 如何在运行时创建对象?

android - AHBottomNavigation 不改变颜色 Android