我需要在字符串中获取当前年份值,所以我做了:
Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);
它适用于ubuntu,但它不能在Windows 7上运行。
你知道为什么吗? 有更安全的方法吗?由于
答案 0 :(得分:20)
您可以使用Calendar#get(int field)
方法简单地从Calendar
实例获取年份:
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String yearInString = String.valueOf(year);
答案 1 :(得分:7)
String thisYear = new SimpleDateFormat("yyyy").format(new Date());
答案 2 :(得分:2)
怎么样?
Date currentDate = new Date();
String currentYear = String.valueOf(currentDate.getYear());
答案 3 :(得分:2)
你也可以这样做:
String year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
答案 4 :(得分:1)
试
Calendar now = Calendar.getInstance();
String year = String.valueOf(now.get(Calendar.YEAR));
答案 5 :(得分:1)
问题和接受的答案都忽略了时区问题。在新的一年,年份数根据您的时区而有所不同。
捆绑的java.util.Date和.Calendar类非常麻烦。避免他们。在Java 8中使用Joda-Time或新的java.time包。
Joda-Time的例子。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTime = DateTime.now( timeZone );
int year = dateTime.year().get();
答案 6 :(得分:1)
在Java 8中,有一个名为java.time
的集合,您可以在其中轻松地从计算机的时钟中获取当前年份。
要将当前年份作为整数,您只需写下:
int thisYear = Year.now().getValue();
将其作为字符串:
String thisYear = Year.now().toString();
答案 7 :(得分:0)
答案 8 :(得分:0)
// enter code here
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy");
String year = format.format(date);
答案 9 :(得分:0)
在Java 8之前的Java版本中,您也可以使用java.sql.Date类。转换为String并将年份子串起来:
String currentYear = new java.sql.Date(System.currentTimeMillis()).toString().substring(0, 4);