gpt4 book ai didi

java:将表示两位数年份的字符串转换为四位数

转载 作者:行者123 更新时间:2023-12-01 12:24:51 26 4
gpt4 key购买 nike

这个问题已经被问过很多次了,但我有一个问题,我觉得这使它成为一个独特的问题。

就这样吧。

我有一个代表两位数年份的字符串,即写 2016 我输入 16

我需要将两位数年份转换为四位数年份,即 16 变为 2016。

在经历了一些问题和答案后,我得出了以下发现

解决方案一

DateFormat sdfp = new SimpleDateFormat("dd.mm.yy");
Date d = sdfp.parse(input);
DateFormat sdff = new SimpleDateFormat("yyyy-MM-dd");
String date = sdff.format(d);

这会很棒,但在我的情况下,我没有一个月或一天,只有一年,我找不到一种方法来创建一个只有一年的日期对象。

解决方案二

以上问题可以通过 Calendar 来解决对象,但它不允许在其年份字段中输入两位数年份的 an。

编辑
忘了提到我不能使用 Joda-Time,因为我在 Android 平台上工作,它会增加我的项目的大小,只是为了这个小用途

最佳答案

为什么不从格式中删除月份和日期的一部分?

DateFormat sdfp = new SimpleDateFormat("yy");
Date d = sdfp.parse(input);
DateFormat sdff = new SimpleDateFormat("yyyy");
String date = sdff.format(d);

LIVE

Here是关于如何 SimpleDateFormat 的规则解释缩写的年份。 (被我加粗)

For parsing with the abbreviated year pattern ("y" or "yy"), SimpleDateFormat must interpret the abbreviated year relative to some century. It does this by adjusting dates to be within 80 years before and 20 years after the time the SimpleDateFormat instance is created. For example, using a pattern of "MM/dd/yy" and a SimpleDateFormat instance created on Jan 1, 1997, the string "01/11/12" would be interpreted as Jan 11, 2012 while the string "05/04/64" would be interpreted as May 4, 1964.

关于java:将表示两位数年份的字符串转换为四位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com