解析MM / DD / YY格式的日期并将其调整为当前/上个世纪的最佳方法是什么?

ScArcher2:

我们的一位客户希望能够输入仅2位数字的年份作为年份部分。日期将是过去的日期,因此如果2位数字的年份在当前年份之后,我们希望它在上个世纪有效,但如果2位数字的年份等于或小于当前年份,则我们希望在本世纪有效。

截至今天10/30/2008

01/01/01 = 01/01/2001

01/01/09 = 01/01/1909

这是一个奇怪的要求,我解决了这个问题,只是不喜欢我的解决方案。感觉有更好的方法可以做到这一点。

谢谢您的帮助。

public static String stupidDate(String dateString)
{
    String twoDigitYear = StringUtils.right(dateString, 2);
    String newDate = StringUtils.left(dateString, dateString.length() - 2);
    int year = NumberUtils.toInt(twoDigitYear);
    Calendar c = GregorianCalendar.getInstance();
    int centuryInt = c.get(Calendar.YEAR) - year;
    newDate = newDate + StringUtils.left(Integer.toString(centuryInt), 2) + twoDigitYear;
    return newDate;
}
肯·温特尔(Ken Gentle):

Groovy脚本(足够容易放入Java中)演示了@bobince关于SimpleDateFormat的观点。

import java.text.SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat('MM/dd/yy')
SimpleDateFormat fmt = new SimpleDateFormat('yyyy-MM-dd')

Calendar cal = Calendar.getInstance()
cal.add(Calendar.YEAR, -100)
sdf.set2DigitYearStart(cal.getTime())

dates = ['01/01/01', '10/30/08','01/01/09']
dates.each {String d ->
  println fmt.format(sdf.parse(d))
}

产量

2001-01-01
2008-10-30
1909-01-01

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将SimpleDateFormat格式的日期解析为“ yyyy-MM-dd”无法正常工作

如何使用JavaScript或jQuery解析“ dd / mm / yyyy”或“ dd-mm-yyyy”或“ dd-mmm-yyyy”格式的日期字符串

为什么SimpleDateFormat(“ MM / dd / yyyy”)将日期解析为10/20/20128?

SimpleDateFormat解析“ YYYY-MM-dd HH:mm”时产生错误的日期时间

从字符串中以以下格式解析日期:dd / MM / yyyy [to dd / MM / yyyy]

java.text.ParseException:无法解析的日期:yyyy-MM-dd HH:mm:ss.SSSSSS

Golang-解析YYYY-MM-DD日期的日期

日期格式dd / mm / yy

从Android中的“ yyyy-MM-dd hh:mm:ss.SSS”解析日期和时间------->“ hh:mm aa”

LocalDateTime使用DateTimeFormatterBuilder解析短年格式dd-MMM-YY HH:mm

在python中将格式为dd.mm.yy的日期转换为yyyy-mm-dd

MomentJS:如何解析MM / DD / YYYY和DD / MM / YYYY中的日期

yy-mm-dd'D'格式是什么?

为什么Pandas停止解析mm / dd / yyyy日期格式?

Swift:日期无法解析“ yyyy-MM-dd'T'HH:mm:ss”字符串

使用当地时区解析YYYY-MM-DD日期

使用yyyy-MM-dd hh:mm:ss格式解析的日期的意外差异

如何选择用户系统日期时间格式并将其解析为db中的dd / mm / yyyy之类的db

在Android中使用MM / dd / yyyy hh:mm:ss zzz格式解析自定义日期

SAS数字日期格式为dd / mm / yy

在C#中将“ mm / dd / yy”字符串解析为“ mm / dd / yyyy”日期对象

在Java中将日期从“ dd”-“ mm”-“ yyyy”设置为“ dd”-“ mm”-“ yy”格式

如何将日期格式的服务器格式解析为“ MM / dd / YYYY”

如何解析dd.mm.yyyy格式的日期?

离子 - 将毫秒(长)日期解析为 dd/mm/yyyy

解析日期格式 dd-MM-yyyy 到 dd MMM yyyy

Spark SQL:将日期字符串从 dd/mm/yyyy 解析为 yyyy/mm/dd

加拿大国家/地区和 MM/dd/yyyy hh:mm 日期的日期解析问题

Java SimpleDateFormat 接受无效日期。格式为“MM/dd/yyyy”的解析“01/01/2021anything”