Java 如何更改日期中的月份。valueOf
我想知道是否只更改日期中月份的值。例如,valueOf:Java 如何更改日期中的月份。valueOf,java,date,Java,Date,我想知道是否只更改日期中月份的值。例如,valueOf: Date startDate = Date.valueOf("2020-01-18"); 在java中创建日期对象后,如何仅更改startDate的月份值?使用此选项 Date startDate = new GregorianCalendar(2020, 0, 18).getTime(); //(year, month - 1, day) Calendar cal = Calendar.getInstance(); cal.
Date startDate = Date.valueOf("2020-01-18");
在java中创建日期对象后,如何仅更改startDate的月份值?使用此选项
Date startDate = new GregorianCalendar(2020, 0, 18).getTime(); //(year, month - 1, day)
Calendar cal = Calendar.getInstance();
cal.setTime(startDate );
cal.set(Calendar.MONTH, Calendar.MARCH);// change to month you want
System.out.println(cal.getTime());
tl;博士
2020-04-18
细节
这两个可怕的类java.util.Date
和java.sql.Date
在几年前被JSR 310中定义的现代java.time类所取代
对于您的输入,请使用
换个月。time类使用不可变对象。因此,我们得到了一个新的LocalDate
,而不是改变原来的
LocalDate ldApril = ld.withMonth( 4 ) ;
ldApril.toString():2020-04-18
你看过了吗?user85421它不起作用。Date类没有valueOf()方法。我建议你不要使用
java.sql.Date
。那门课设计得很糟糕,而且早已过时。改为使用中的LocalDate
fromLocalDate.parse(“2020-01-18”)。与(月.月)
@Ole我相信我清楚地写了一封信,不使用它,而是使用新的时间包。。。由OP决定使用哪一个(如果有选择的话)((当然它是因为某种原因被弃用的))这些糟糕的类在几年前被java.time类取代,并采用了jsr310。
LocalDate ld = LocalDate.parse( "2020-01-18" ) ;
LocalDate ldApril = ld.withMonth( 4 ) ;