java - 如果我有一天的特定日期,我如何获得前一周的那一天的日期?

标签 java datetime date calendar

查看@Basil Bourque 的最新答案


例如,如果我有一个“日期”变量“date1”,其值为 (dd/mm/yyy) 03/07/2011,这是星期日。如何获取前一个星期日“date2”的“日期”?其值为 (dd/mm/yyyy) 26/06/2011。

有没有简单的方法,例如:

伪代码:

Date date1 = (03/07/2011);
Date date2 = date1.subtractNumberOfDays(7);

最佳答案

你应该使用日历:

    Calendar date = new GregorianCalendar(2011, Calendar.JULY, 3);
    date.add(Calendar.DAY_OF_MONTH, -7);
    System.out.println(date.getTime());

您也可以根据日期创建日历:

    Date date1 = new Date(111, Calendar.JULY, 3);//the year field adds 1900 on to it.
    Calendar date = new GregorianCalendar();
    date.setTime(date1);
    date.add(Calendar.DAY_OF_MONTH, -7);
    date2 = date.getTime();

请注意:

  • Java 用 0 代表一月!
  • 日期(年、月、日)自 JDK 1.1 版起已弃用!

请参阅 GregorianCalendar JavaDoc:

Constructs a GregorianCalendar with the given date set in the default time zone with the default locale. Parameters: year the value used to set the YEAR calendar field in the calendar. month the value used to set the MONTH calendar field in the calendar. Month value is 0-based. e.g., 0 for January. dayOfMonth the value used to set the DAY_OF_MONTH calendar field in the calendar.

关于java - 如果我有一天的特定日期,我如何获得前一周的那一天的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6545935/

相关文章:

java - 我可以为 Java native 接口(interface) (JNI) 库设置环境变量吗?

java - 安卓模拟器 : Process finished with exit code -1073741819 (0xC0000005)

python - 使用 python 检查日期时间是否有日期名称或时区

java - 将 MySql 日期映射到 java 对象

php - mysql group by only date 并计算有多少结果

javascript - 如何在 Freemarker 模板或 javascript 中以特定格式转换日期

java - JSF 的奇怪问题 - Web bean 在第二次提交单击之前不会被调用

java - Android日历,获取事件ID

c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

c# - yyyyMMddtt 中的 DateTime.ParseExact 错误