下面是详细的攻略。
什么是 SimpleDateFormat 类
SimpleDateFormat 类是用于格式化和解析日期的类,它允许指定自定义日期时间格式,例如 "yyyy-MM-dd HH:mm:ss"。在使用 SimpleDateFormat 类时,需要注意它提供的不同日期时间格式字符的含义。
在下面的解释中,我们将特别关注 yyyy
和 YYYY
的区别。
yyyy 和 YYYY 的区别
在 SimpleDateFormat 类中,"y" 代表年份,其中 yyyy
表示的是四位数字年份,YY
表示的是两位数字年份。而 YYYY
表示的是基于周的年份。下面分别介绍它们之间的区别。
yyyy 表示的四位数字年份
yyyy
表示四位数字年份,例如 2021 年。这个格式字符要注意的是必须使用大写字母,"y" 的小写字母 "yyy" 是无效的。
示例代码如下:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String formattedDate = sdf.format(now);
System.out.println("yyyy: " + formattedDate);
}
}
输出结果如下:
yyyy: 2021-09-15 06:29:02
YYYY 表示基于周的年份
YYYY
表示基于周的年份,它带有一些额外的规则。如果日期属于一个年的最后一个周,那么这个周的下一年就是下一个年。同时,如果日期属于一个年的第一个周,那么这个周的上一年就是上一个年。
示例代码如下:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class WeekBasedDateFormatExample {
public static void main(String[] args) {
Date now = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(now);
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-'W'ww-u");
String formattedDate = sdf.format(now);
System.out.println("YYYY: " + formattedDate);
}
}
输出结果如下:
YYYY: 2021-W37-3
在这个例子中,我们使用了 YYYY-'W'ww-u
的格式来表示基于周的年份。其中,"W" 表示周数,"u" 表示星期几。最终输出的格式为 "YYYY-WW-D",其中 "D" 表示星期几从 "1"(代表周一)到 "7"(代表周日)。
总结
- 使用大写字母 "YYYY" 可以表示基于周的年份,而 "yyyy" 则表示的是指定的年份。
- 在使用 SimpleDateFormat 类时,我们需要根据自己的需求选择适合的格式字符,以获得正确的日期时间输出格式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单了解JAVA SimpleDateFormat yyyy和YYYY的区别 - Python技术站