如何在不使用任何子串算法或任何第三方库的情况下仅显示当前年份的最后两位数?
我尝试了下面的方法,它给出了一个四位数的年份。我想知道是否有可用的日期格式选项来获取两位数格式的当前年份。
Calendar.getInstance().get(Calendar.YEAR);
发布于 2017-04-09 17:53:18
这是一行代码:
System.out.println(Year.now().format(DateTimeFormatter.ofPattern("uu")));
我使用的是java.time.Year
,它是Java8中引入的大量date和time类之一(也可以向后移植到Java6和7)。这只是许多新类中的一个小示例,新类比旧类Calendar
和SimpleDateFormat
更方便,代码更清晰。
如果你只想要两位数的数字,而不是字符串,你可以使用:
Year.now().getValue() % 100
。
其他答案在2013年都是不错的答案,但这些年已经过去了。:-)
发布于 2020-05-29 07:41:41
String.format()
也有Date/Time Conversions。
为了得到当前年份的最后两位数,
String.format("%ty", Year.now());
这适用于许多java.time
类,包括Year
、YearMonth
、LocalDate
、LocalDateTime
和ZonedDateTime
。
发布于 2020-12-04 20:47:39
@Robin Krahl的解决方案有点老套,但我喜欢它。如果我们添加一个前导零,我们就可以避免@Albert Tong评论的案例。为了得到年份的最后两位数,我假设结果应该是一个字符串。以防我们不能使用@jaco0646的解决方案。我们可以这样做:
String yearStr = addLeadingZero(Calendar.getInstance().get(Calendar.YEAR) % 100)
private String addLeadingZero(int num) {
String result = String.valueOf(num);
if(num < 10){
result = "0" + result;
}
return result;
}
https://stackoverflow.com/questions/20070258
复制相似问题