gpt4 book ai didi

java - 以 "X minutes/hours/days/weeks/months/years ago"格式解析日期时间

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:31 26 4
gpt4 key购买 nike

如何解析 X 分钟/小时/天/周/月/年前格式的日期。以下是一些示例来说明我所指的内容:

  • 3 天前
  • 1 分钟前
  • 2 年前

我认为使用默认的 Java 库不容易做到这一点。我说得对吗?

最佳答案

基于 Calendar API 的小片段。

Pattern p = Pattern.compile("(\\d+)\\s+(.*?)s? ago");

Map<String, Integer> fields = new HashMap<String, Integer>() {{
put("second", Calendar.SECOND);
put("minute", Calendar.MINUTE);
put("hour", Calendar.HOUR);
put("day", Calendar.DATE);
put("week", Calendar.WEEK_OF_YEAR);
put("month", Calendar.MONTH);
put("year", Calendar.YEAR);
}};

String[] tests = {
"3 days ago",
"1 minute ago",
"2 years ago"
};

for (String test : tests) {

Matcher m = p.matcher(test);

if (m.matches()) {
int amount = Integer.parseInt(m.group(1));
String unit = m.group(2);

Calendar cal = Calendar.getInstance();
cal.add(fields.get(unit), -amount);
System.out.printf("%s: %tF, %<tT%n", test, cal);
}
}

输出:

3 days ago: 2012-08-18, 09:21:38
1 minute ago: 2012-08-21, 09:20:38
2 years ago: 2010-08-21, 09:21:38

关于java - 以 "X minutes/hours/days/weeks/months/years ago"格式解析日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12049480/

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