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

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

尹正奇
2023-03-14
问题内容

我们的一位客户希望能够输入仅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;
}

问题答案:

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


 类似资料:
  • 问题内容: 我有一个日期为dd-mm-yyyy格式的日期(在我的数据库内)。我需要将其转换为dd-mm-yy格式。我从db中检索了日期并将其存储在字符串中。 1990并不是完全需要的,只需要90.使用java中的split()我尝试了一些东西,但它不会帮助我。任何人都可以帮忙。任何帮助将不胜感激。 问题答案: 试试下面的代码

  • 问题内容: 我有一个JODA 。我想将其转换为日期格式。所以我期望代码返回日期-12/12/31。 代码- 结果: 当我执行以下操作时,我得到了预期的输出,但是我不知道如何将其转换为Date- 请帮我。 谢谢 编辑-我希望最终结果是dd / mm / yy格式的使用日期。我不希望String输出。我的输入是Joda DateTime yyyy-MM- ddThh:mm:ss:+ GMT。我需要将J

  • 问题内容: 当我在下面的代码下运行时,出现Unparseable错误。如何将dd MMM yyyy格式转换为dd / MM / yyyy格式? 问题答案: 假设您修复了明显的语法错误,则: 您要做的就是为您需要解析的格式创建一个解析器,并为您想要的格式创建一个格式化器:

  • 代码如下: doc[i]["Time"]值应该是军事时间,如19:42。我遵循了使用DateFormat的准则,但是最终结果变量time包含“1970-01-01 19:42:00.000”。有没有办法让时间刚好包含“19.42”?

  • 我正试图用2018年9月4日的下午6:30:00(2018年3月9日)获得这个日期,但我得到的是2017年12月364日的下午6:30:00,以下是我尝试过的。

  • 我正在进行JavaScript验证,验证文本框的日期是否等于当前日期。 如果大于或等于今天的日期,则显示错误消息。 注意:在我的中,我已将日期转换为格式。所以我需要检查date与格式的当前日期。这是我的代码: 我需要使用日期的格式来检查我的文本框中的日期,因此我今天的值只能使用日期的格式。