【问题标题】:How to get next and previous date of selected date or current date by clicking arrow left Right如何通过单击左箭头右获取所选日期或当前日期的下一个和上一个日期
【发布时间】:2022-01-14 01:36:16
【问题描述】:

通过单击左箭头右按钮获取所选日期或当前日期的下一个日期和上一个日期

【问题讨论】:

  • 如果您使用的是 LocalDate,那么您可以使用 localDate.minusDays(1)localDate.plusDays(1) 获取前一天或后一天。更多关于 LocalDate 的信息在这里developer.android.com/reference/java/time/LocalDate 可从 api 26 获得,如果您针对需要在项目中启用脱糖功能的早期设备。

标签: android date


【解决方案1】:

不要使用旧的CalendarSimpleDateForamt api,它是outdated and troublesome

使用LocalDateTime获取系统日期和时间。

当前日期

val dateTime = LocalDateTime.now()   // current date
val formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)  // date time formatter
Log.d("Date:", "parssed date ${dateTime.format(formatter)}")

上一个日期

button.setOnClickListener { 
        val previousDate = dateTime.minusDays(1)
        Log.d("Date:", "previous date ${previousDate.format(formatter)}")
}

下一个日期

button.setOnClickListener {
        val nextDate = dateTime.plusDays(1)
        Log.d("Date:", "next date ${nextDate.format(formatter)}")
}

输出
当前日期 - 2021 年 12 月 9 日
上一个日期 - 2021 年 12 月 8 日
下一个日期 - 2021 年 12 月 10 日

注意LocalDateTime仅适用于android 8及以上,在android 8以下使用enable desugaring

【讨论】:

    【解决方案2】:
    Calendar c = Calendar.getInstance();
    //for selected date add this line c.set(2021,2,2)
    SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    String formattedDate = df.format(c.getTime());
    textview.setText(formattedDate);
    

    下次约会

    previous.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                c.add(Calendar.DATE, -1);
                formattedDate = df.format(c.getTime());
                textview.setText(formattedDate);
             }
          });
    

    上一个日期

    next.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                c.add(Calendar.DATE, 1);
                formattedDate = df.format(c.getTime());
                textview.setText(formattedDate);
            }
        });
    

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 2016-04-05
      • 2019-04-24
      • 2022-01-16
      • 2019-09-15
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多