在Java中以年数据的形式生成月份数据

在Java中以年数据的形式生成月份数据,java,Java,我想在控制台中显示一个月,例如格式为YYYY的11,年、月的格式是MM的扩展版本。 例如,在控制台中,月份11应该是0011 String s2 = a.nextToken(); String s3 = a.nextToken(); int s4 = Integer.parseInt(s1); int s5 = Integer.parseInt(s2); int s6 = Integer.parseInt(s3); 为它使用一个模式,并从中添加或删除任何您想要的内容;在您的情况下,在M

我想在控制台中显示一个月,例如格式为YYYY的11,年、月的格式是MM的扩展版本。 例如,在控制台中,月份11应该是0011

String s2 = a.nextToken(); 
String s3 = a.nextToken(); 
int s4 = Integer.parseInt(s1); 
int s5 = Integer.parseInt(s2); 
int s6 = Integer.parseInt(s3);

为它使用一个模式,并从中添加或删除任何您想要的内容;在您的情况下,在MM之前添加两个零

String pattern = "yyyy-00MM-dd"; 
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date()); 
System.out.println(date);
@Alin基于您在上面提供的评论,如果您担心上面的填充零应该会有所帮助

上述方法的输出为int提供了向左填充的零


你尝试过什么?基本上这只是在左边加2个零,我用stringtokenizer String s2=a.nextToken提取了月份和年份的这两个字符串;字符串s3=a.nextToken;int s4=整数.parseInts1;int s5=整数.parseInts2;int s6=整数.parseInts3;我在整数s5和s6中进行转换,如何在整数s5表示形式的左边添加两个零?这不是一次尝试,你只是在对字符串进行parint^^^你使用StringTokenizer而不是更容易使用的Scanner有什么具体原因吗?请,多年来,停止使用Date和SimpleDateFormat回答不推荐使用的问题。使用java.time LocalDate和DateTimeFormatterOP有一个字符串作为输入,而不是日期对象,因此除了使用旧的遗留类之外,它不会回答这个问题。OP在Joakim Danielson编辑了他的问题,但我要记住,azroOP在任何版本中都没有日期作为输入。这将为任何日期生成相同的输出,不是吗?例如,对于五月,它将输出004而不是0005。上面根据@Alin comments进行了更新。如果您希望答案前缀为零,则不能返回int。
private static int leftPad(int s5, int padLength) {
   String str = ""+s5;
   while(str.length() < padLength) {
     str = 0+str;
   }
   return Integer.parseInt(str);
}