【问题标题】:How to get Current Year in YY Format in Java/Android [duplicate]如何在Java / Android中以YY格式获取当前年份[重复]
【发布时间】:2017-04-09 09:30:19
【问题描述】:

我可以从下面的代码中获得 YYYY 格式的年份。但我想要 YY 格式。有人可以帮忙吗?

Calendar c = Calendar.getInstance();

int seconds = c.get(Calendar.SECOND);
int hour = c.get(Calendar.HOUR_OF_DAY); // IF YOU USE HOUR IT WILL GIVE 12 HOUR USE HOUR_OF_DAY TO GET 24 HOUR FORMAT
int minutes = c.get(Calendar.MINUTE);
int date = c.get(Calendar.DATE);
int month = c.get(Calendar.MONTH) + 1; // in java month starts from 0 not from 1 so for december 11+1 = 12
int year = c.get(Calendar.YEAR);

【问题讨论】:

  • 这个问题已经回答了:stackoverflow.com/questions/20070258/…
  • 错误:(189, 33) 错误:不兼容的类型:SimpleDateFormat 无法转换为 DateFormat
  • 确保你已经导入了java.text.DateFormatjava.text.SimpleDateFormat,而不是android版本
  • 如果(阅读链接问题中的答案后)您想使用java.time.Year,您可以在ThreeTenABP 中获得它。

标签: java android date format 2-digit-year


【解决方案1】:

是的:)

int year = c.get(Calendar.YEAR) % 100;

【讨论】:

  • 当然还有其他更好的设计方法,但那是1秒的答案:O
【解决方案2】:

你可以这样做:

int fourDigYear = c.get(Calendar.YEAR)
String yrStr = Integer.toString(digyear).substring(2);
int year = Integer.parseInt(yrStr);

例如,如果日历年是 int 2014,则“年”将以整数 14 的形式出现。这样可以确保放入其中的任何年份总是会导出超过“yy”的数字。所以我保证在 10000 年之前你不会有任何问题。

编辑: 要让它永远工作,您可以将其调整为:

    int digyear = c.get(Calendar.YEAR);
    String yrStr = Integer.toString(digyear);
    String yrStrEnd = yrStr.substring(yrStr.length() - 2);
    int year = Integer.parseInt(yrStrEnd);

【讨论】:

  • 仅供参考,麻烦的 Calendar 类已被 java.time 类取代。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多