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

解析具有短月份且不带点的日期

嵇弘新
2023-03-14
问题内容

我有一个表示 法语 语言环境中日期的字符串:08-oct-08:

我需要 解析 该String,所以我想到了这个SimpleDateFormat:

String format2 = "dd-MMM-yy";

但是我对月份部分有问题,这似乎应该以结束点表示:

df2.format(new Date());

给我 :

 28-oct.-09

现在让我理解SimpleDateFormat(“ 09-oct-08”)的最佳方法是什么?

完整代码:

String format2 = "dd-MMM-yy"; 
DateFormat df2 = new SimpleDateFormat(format2,Locale.FRENCH); 
date = df2.parse("09-oct-08");

这给了我:java.text.ParseException:无法解析的日期:“ 09-oct-08”

如果我然后尝试登录

df2.format(new Date());

我得到:09年10月28日


问题答案:

这似乎可行:

    DateFormatSymbols dfsFr = new DateFormatSymbols(Locale.FRENCH);
    String[] oldMonths = dfsFr.getShortMonths();
    String[] newMonths = new String[oldMonths.length];
    for (int i = 0, len = oldMonths.length; i < len; ++ i) {
        String oldMonth = oldMonths[i];

        if (oldMonth.endsWith(".")) {
            newMonths[i] = oldMonth.substring(0, oldMonths[i].length() - 1);
        } else {
            newMonths[i] = oldMonth;
        }
    }
    dfsFr.setShortMonths(newMonths);
    DateFormat dfFr = new SimpleDateFormat(
        "dd-MMM-yy", dfsFr);

    // English date parser for creating some test data.
    DateFormat dfEn = new SimpleDateFormat(
        "dd-MMM-yy", Locale.ENGLISH);
    System.out.println(dfFr.format(dfEn.parse("10-Oct-09")));
    System.out.println(dfFr.format(dfEn.parse("10-May-09")));
    System.out.println(dfFr.format(dfEn.parse("10-Feb-09")));

编辑:看起来圣影子击败了我。



 类似资料:
  • 问题内容: 我用来格式化字符串中的日期。但是现在它混合了月份和日期。 我有一个包含的字符串。后 它返回: 我希望它会回来 我怎样才能告诉代码格式是? 作为记录,将按预期解析为。 问题答案: 指定: 在日期格式不明确的情况下(例如,当日期为12或更少时),这将优先使用DD-MM-YYYY格式而不是MM-DD- YYYY。该功能在此处记录。

  • 问题内容: 我正在尝试计算自特定日期起经过的月份,但如果我将今天的日期与过去的年份不同,则该函数可以使我有一个月的差异(少于一个月),因此该函数可以正常工作。 说出所有日期,该功能运行良好,但以下情况除外: 如果今天是“ 2014-03-06”(YYYY,MM,DD),并且我将函数的日期处理为“ 2006-03-06”,则结果要短一个月,但是如果明天使用相同的日期,结果很好。我要去哪里错了。下面是

  • 运行下面列出的代码时,我看到以下错误: 线程“main”java中出现异常。时间总体安排DateTimeParseException:无法在java的索引4处分析文本“2017年9月21日星期四23:47:03 EDT”。时间总体安排DateTimeFormatter。java上的parseResolved0(未知源)。时间总体安排DateTimeFormatter。在java上解析(未知源)。时

  • 我在尝试从按日期筛选的表中选择数据时遇到了一个问题。 例如: null 此选择的结果是:

  • 我想在JavaScript中解析没有时区的日期。我试过: