将当前年份值转换为字符串

时间:2013-10-05 12:53:02

标签: java calendar operating-system date-format

我需要在字符串中获取当前年份值,所以我做了:

Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);

它适用于ubuntu,但它不能在Windows 7上运行。

你知道为什么吗? 有更安全的方法吗?

由于

10 个答案:

答案 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)

Java 8:

java.time.Year.now();

这是link

答案 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);