如何在简单日期格式中输入 01 而不是今天的确切日期 当我使用
SimpleDateFormat day= new SimpleDateFormat("dd");
它给了我今天的确切日期..那么我怎么能把我的具体日期放在这个
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
String NOW = (sdf.format(new java.util.Date()));
SimpleDateFormat month = new SimpleDateFormat("MM");
String MONTH = (month.format(new java.util.Date()));
SimpleDateFormat year = new SimpleDateFormat("yyyy");
String YEAR = (year.format(new java.util.Date()));
String PAST = ((MONTH)+"-"+(1)+"-"+(YEAR));
((MONTH)+"-"+(1)+"-"+(YEAR));
返回1
,但它应该是01
但是当我运行它时,它只变成 1
tl;博士
YearMonth
.now(
ZoneId.of( "America/Montreal" )
)
.atDay( 1 )
.format(
DateTimeFormatter.ofPattern( "MM-dd-uuuu" )
)
java.time
现代方法使用java.time类。永远不要使用可怕的遗留类,例如Calendar
和SimpleDateFormat
.
获取当前年份和月份。
YearMonth ym = YearMonth.now() ;
获取该月的第一天。
LocalDate ld = ym.atDay( 1 ) ;
指定所需的格式设置模式。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ;
String output = ld.format( f ) ;
如果要从日期的字符串表示形式中创建Date对象,则可以使用SimpleDateFormatparse(String source)
方法。
例如:
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
Date date = sdf.parse("09-01-2018");
然后,如前所述,如果要将 Date 对象格式化为特定格式的字符串,只需调用:sdf.format(date)
.
注意:请注意,如果字符串不是有效日期,sdf.parse(String source)
可能会抛出 ParseException。