Java SimpleDataFormat设置为01

Java SimpleDataFormat设置为01,java,simpledateformat,Java,Simpledateformat,如何在SimpleDateFormat中输入01而不是今天的确切日期 当我使用 SimpleDateFormat day= new SimpleDateFormat("dd"); 它给了我今天的确切日期。。那么我该如何确定我的具体日期呢 SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); String NOW = (sdf.format(new java.util.Date())); Simple

如何在SimpleDateFormat中输入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));

((月)+“-”(1)+“-”(年))
返回
1
,但它应该是
01
,但当我运行它时,它只会变成1

如果您想用日期的字符串表示创建日期对象,那么可以使用SimpleDataFormat的
解析(字符串源)
方法

例如:

SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
Date date = sdf.parse("09-01-2018");
然后,如前所述,如果要将日期对象格式化为特定格式的字符串,只需调用:
sdf.format(日期)


注意:请注意,如果字符串不是有效的日期,
sdf.parse(字符串源)
可能会引发ParseException。

如果要使用日期的字符串表示形式创建日期对象,则可以使用SimpleDataFormat的
parse(字符串源)
方法

例如:

SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
Date date = sdf.parse("09-01-2018");
然后,如前所述,如果要将日期对象格式化为特定格式的字符串,只需调用:
sdf.format(日期)

注意:请注意,
sdf.parse(字符串源代码)
如果字符串不是有效日期,则可能引发ParseException。

tl;博士 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 ) ;
tl;博士 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 ) ;

我建议您避免使用
SimpleDateFormat
类。它不仅早已过时,而且还出了名的麻烦。今天,我们有这么多更好的,谁教你设置这么多括号?我发现你的代码很难读懂。我可以更容易地阅读
MONTH+“-”+1+“-”+YEAR
。如果你真的想手工格式化你的日期-你不想你可以只做
MONTH+“-01-”+YEAR
。我建议你避免使用
SimpleDateFormat
类。它不仅早已过时,而且还出了名的麻烦。今天,我们有这么多更好的,谁教你设置这么多括号?我发现你的代码很难读懂。我可以更容易地阅读
MONTH+“-”+1+“-”+YEAR
。如果你真的想手工格式化你的日期-你不想你可以只做
MONTH+“-01-”+YEAR