【问题标题】:How to get yesterday instance from Calendar? [duplicate]如何从日历中获取昨天的实例? [复制]
【发布时间】:2019-03-28 09:49:12
【问题描述】:

我有一个通过 java.util.Calendar 操作日期的 Android 应用程序

当我想使用今天的日期时,我使用:

 Date today = Calendar.getInstance().getTime();

我想知道如何操纵昨天的日期,我尝试了多种语法但没有任何效果,我正在考虑类似的东西

昨天 = 今天 - 24(UNITS.HOURS)

但那是不正确的!

【问题讨论】:

  • 所以你只是胡乱猜测你能做什么而不是做研究? idownvotedbecau.se/noresearch
  • 顺便考虑扔掉长期过时且设计不佳的CalendarDate,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间 API。与它一起工作要好得多。 LocalDate.now(yourTimeZone).minusDays(1).
  • 这里有a good answer here(它比你要求的要多一点,只需要你需要的部分)。

标签: java android calendar


【解决方案1】:

试试这个:

使用此代码,您将始终获得昨天的日期。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
dateFormat.format(cal.getTime());

【讨论】:

    【解决方案2】:

    你可以这样试试:

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH, (cal.get(Calendar.DAY_OF_MONTH) - 1));
    Date yesterDayDate = cal.getTime();
    

    【讨论】:

    • 不能写成“(cal.get(Calendar.DAY_OF_MONTH) - 1)”,只能写-1,因为getInstance方法已经返回了当前日期。
    • @SerkanYıldırım 不。先试了再说。
    • @SerkanYıldırım 它只会返回月份中的某一天,而整个日期是必需的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    相关资源
    最近更新 更多