获取当前年份值到字符串
Posted
技术标签:
【中文标题】获取当前年份值到字符串【英文标题】:get present year value to string 【发布时间】:2013-10-12 10:39:16 【问题描述】:我需要以字符串形式获取当前年份值,所以我这样做了:
Calendar now = Calendar.getInstance();
DateFormat date = new SimpleDateFormat("yyyy");
String year = date.format(now);
它可以在 ubuntu 上运行,但不能在 Windows 7 上运行。
你知道为什么吗? 有没有更安全的方法来做到这一点?
谢谢
【问题讨论】:
“不工作”到底是什么意思? 【参考方案1】:怎么样
Date currentDate = new Date();
String currentYear = String.valueOf(currentDate.getYear());
【讨论】:
Date#getYear()
已弃用。
还有,那是year-1900
。【参考方案2】:
您可以使用Calendar#get(int field)
方法从Calendar
实例中简单地获取年份:
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String yearInString = String.valueOf(year);
【讨论】:
【参考方案3】:试试
Calendar now = Calendar.getInstance();
String year = String.valueOf(now.get(Calendar.YEAR));
【讨论】:
【参考方案4】:你也可以这样做:
String year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
【讨论】:
【参考方案5】:String thisYear = new SimpleDateFormat("yyyy").format(new Date());
【讨论】:
你应该解释一下。 我用这个。 SimpleDateFormat 使用日历。格式示例:SimpleDateFormat【参考方案6】:时区
问题和接受的答案都忽略了时区问题。在新年时,年数会因您所在的时区而异。
乔达时间
捆绑的 java.util.Date 和 .Calendar 类是出了名的麻烦。避开他们。使用 Joda-Time 或 Java 8 中的新 java.time 包。
Joda-Time 中的示例。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTime = DateTime.now( timeZone );
int year = dateTime.year().get();
【讨论】:
【参考方案7】:Java 8:
java.time.Year.now();
这里是link。
【讨论】:
【参考方案8】:在 Java 8 中有一个名为 java.time
的集合,您可以在其中轻松地从计算机时钟中获取当前年份。
要将当前年份作为整数,您可以简单地编写:
int thisYear = Year.now().getValue();
将其作为字符串获取:
String thisYear = Year.now().toString();
【讨论】:
【参考方案9】: // enter code here
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy");
String year = format.format(date);
【讨论】:
这是一个低质量的答案。您没有描述这如何帮助解决问题,答案只是与原始 OP 几乎相同的代码,并且没有解释如何解决问题。【参考方案10】:在 Java 8 之前的 Java 版本中,您还可以使用 java.sql.Date 类。将年份转换为字符串和子字符串:
String currentYear = new java.sql.Date(System.currentTimeMillis()).toString().substring(0, 4);
【讨论】:
以上是关于获取当前年份值到字符串的主要内容,如果未能解决你的问题,请参考以下文章
Iphone:如何将年份添加到当前日期并将其作为字符串返回,格式为 2011-11-20