当前位置: 首页 > 面试题库 >

如何使DateFormat猜测预期的世纪?

汪志业
2023-03-14
问题内容

我正在尝试将String“ dd-MM-yy”格式解析为Date对象。问题在于它试图猜测日期的世纪。

如果从01到31指定,年份将解释为2000年代(21世纪),而32 t0 99被认为是1900年代(20世纪)。

SimpleDateFormat fm =new SimpleDateFormat("dd-MM-yy");
String datestr="21-11-31";
try {
  Date date= fm.parse(datestr);
  System.out.println(date);
} catch (ParseException e) {
}

谁能帮我?我该如何指定我只能整洁地工作在21世纪。我并没有完全尝试根据条件来处理诸如操作字符串或更改日期之类的技巧。


问题答案:

您可以使用方法更改用于解释2位数据输入的世纪set2DigitYearStart()

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yy");
String aDate = "03/17/40";
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2000);
dateFormat.set2DigitYearStart(cal.getTime());
System.out.println(dateFormat.get2DigitYearStart());
System.out.println(dateFormat.parse(aDate));

将于2040年3月17日印刷。



 类似资料:
  • 问题内容: 我试图验证实际上是一个字符串的日期,尝试以格式打印它。这是代码。 输出为。我也想要验证。不知道如何进行。 问题答案: 默认情况下宽松。您需要在解析之前将其设置为非宽容。 与年份相比,这将导致提供无效的日期和/或月份。请注意,这并不能验证年份本身,因为基本上任何年份都是有效的。根据具体的功能要求,您可能希望对年份进行其他检查,例如,打开字符串,然后检查第一部分的长度是否为4。

  • 我对Java还是有点陌生,有一个实验室需要模拟一个彩票游戏,生成一个介于1到10之间的数字。它首先询问用户想要购买多少张彩票,然后询问他们是否希望计算机为他们生成猜测,如果是,则会生成猜测并显示中奖号码。如果用户说不,那么用户将自己输入猜测,并显示中奖号码。 我在弄清楚当有人输入是或否时如何执行代码时遇到了问题。我应该做一个do while循环吗? 这是我现在的代码。 以下是算法:1。获取购票数量

  • 我想做一个像彩票一样的程序,中奖号码是随机生成的。 我使用了,如果用户猜到了所有6个数字。 如果用户只能猜测5位数字,我应该用什么方法从随机生成的数字中计算出5个正确的数字? 代码是: 类是,和

  • 我正在寻找一种解决方案,可以将包含iso基本日期格式的字符串(如20190330)转换为格式化日期,如2019-03-30(欧元格式)或2019年3月30日(英国格式)或2019年3月30日(美国格式)。格式取决于用户选择的格式。库<代码>java。时间LocalDate和java。时间总体安排DateTimeFormatter似乎提供了解决方案的可能性,但我发现这些库的文档不连贯且令人困惑,我不

  • 接口测试没有预期结果如何测试?(即没有接口文档中写的预期结果) 希望知道的小伙伴回答一下,谢谢!

  • 问题内容: 我的strings.xml中有这样的字符串: 我在代码中像这样使用它们: 但是它以小写形式显示日期和月份,我希望将两者都大写。我该如何实现? 问题答案: 我像这样修复它: