Java-我怎么把日期作为输入和可以加/减其日/月/年

0

的问题

目前,我正在使用这个代码我不知道如果有一个方法可以添加或删减的日期,我输入 Scanner(System.in)

Scanner scanner = new Scanner(System.in);
System.out.println("Date: ");
String date = scanner.next();
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date date2=null;
try {
    date2 = dateFormat.parse(date);
} catch (ParseException e) {
    e.printStackTrace();
}
date intellij-idea java
2021-11-21 02:51:00
2

最好的答案

1

java。时间

从来没有使用传统的课程 DateSimpleDateFormat. 只使用 java。时间 课程。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/dd/uuuu" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

加减法,呼叫的 plus…minus… 方法。

LocalDate later = ld.plusDays( 3 ) ;
LocalDate earlier = ld.minusYears( 7 ) ;
2021-11-21 06:15:13

我应该仍然可以使用扫描仪类得到的输入
brae

@。是的,一部分代码阅读用户输入不变的问题。 只码在回答假设的变量保持串读的扫描仪的名为 input 而不是 date.
Ole V.V.
0

你可以转换的日期LocalDate. 它已加上方法,如plusYears(),plusMonths(),plusDays().

    // Date -> LocalDate
    private static LocalDate of(Date date) {
        Instant instant = date.toInstant();
        return instant.atZone(ZoneId.systemDefault()).toLocalDate();
    }
 
    // LocalDate -> Date
    private static Date of(LocalDate localDate) {
        Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
        return Date.from(instant);
    }
2021-11-21 03:14:08

你的转换都是正确的,但作为更好地帮助通过不用 Date 类在所有,因此不需要的转换。
Ole V.V.

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................