【问题标题】:Android how to add new date using SimpleDateFormat [duplicate]Android如何使用SimpleDateFormat添加新日期[重复]
【发布时间】:2020-10-18 13:49:57
【问题描述】:

这是我使用 java 在我的 android 应用程序中获取当前日期的代码。日期应显示在我的通知中。通知将在一天后显示。我需要在不使用日历选项的情况下获得新的日期加上一天。有可能吗?

String OnedaylaterDate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

【问题讨论】:

  • 在创建通知时使用日历实例获取当前日期,并添加一天以获取第二天的日期。 SimpleDateFormat 是获取日期的格式化程序,您需要 Date 或 Calendar 实例。
  • 感谢您的回答。使用 Date 那么这怎么可能呢?我不想使用日历。
  • 顺便考虑扔掉长期过时且臭名昭著的麻烦SimpleDateFormat和朋友。看看您是否可以使用desugaring 或将ThreeTenABP 添加到您的Android 项目中,以便使用现代Java 日期和时间API 的java.time。使用起来感觉好多了。
  • 在链接的原始问题下,我不谦虚地推荐my own answer
  • 你为什么不想使用CalendarCalendar 类设计不佳且过时已久,我当然不推荐使用它。之所以这样问,是因为另一方面,它并没有比 DateSimpleDateFormat 类更糟糕或过时,而是相反。

标签: java android


【解决方案1】:

由于您不想使用日历实例,您可以使用LocalDate。 PS:- Java 8 支持 LocalDate。

LocalDate date =  LocalDate.now().plusDays(1);
System.out.println("Adding one day to current date: "+date);

【讨论】:

    【解决方案2】:

    您不应再使用java.util.Date,因为它已被java.time 包取代。此外,java.util.Date 中的方法被替换为 Calendar 中的方法,例如 Date.getDay() 中返回的星期几被替换为 Calendar.get(Calendar.DAY_OF_WEEK);。但是如果你仍然想用 Date 类来做,这里是:

    Date afterOneDay=Date.UTC(date.getYear(), date.getMonth(), date.getDate() + 1,  //plus one
                                     date.getHours(),date.getMinutes(),date.getSeconds());
    

    下面是使用java.time.* 的方法:

    LocalDateTime time=LocalDateTime.now();
        
    LocalDateTime afterOneDay=time.plusDays(1);
    

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2011-02-04
      相关资源
      最近更新 更多