jjzjj

java.text.ParseException : Unparseable date (German, 乌克兰语)

coder 2024-03-19 原文

我需要将日期解析为 11 种不同的语言。到目前为止,只有两个给我带来麻烦:德语和乌克兰语。

package com.example;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class TestDate {

    private static SimpleDateFormat DATE_SDF;

    public static void main(String[] args) {
        // German
        DATE_SDF = new SimpleDateFormat("dd MMM yyyy", Locale.GERMAN);
        DATE_SDF.setLenient(false);
        String[] germanDate = {"11 Jan 1970", "11 Feb 1970", "11 Mär 1970", 
                "11 Apr 1970", "11 Mai 1970", "11 Jun 1970",
                "11 Jul 1970", "11 Aug 1970", "11 Sep 1970", 
                "11 Okt 1970", "11 Nov 1970", "11 Dez 1970"};
        for (String germanDateIterator: germanDate) {
            try {
                Date parsedGermanDate = DATE_SDF.parse(germanDateIterator);
                System.out.println("parsedGermanDate:" + parsedGermanDate);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }

        // Ukrainian
        DATE_SDF = new SimpleDateFormat("dd MMM yyyy", new Locale("uk"));
        DATE_SDF.setLenient(false);
        String[] ukDate = {"11 Січ 1970", "11 Лют 1970", "11 Бер 1970", 
                "11 Кві 1970", "11 Тра 1970", "11 Чер 1970", 
                "11 Лип 1970", "11 Сер 1970", "11 Вер 1970", 
                "11 Жов 1970", "11 Лис 1970", "11 Гру 1970"};
        for (String ukDateIterator: ukDate) {
            try {
                Date parsedUkDate = DATE_SDF.parse(ukDateIterator);
                System.out.println("parsedUkrainianDate:" + parsedUkDate);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
}

这个测试的输出是:

parsedGermanDate:Sun Jan 11 00:00:00 MST 1970
parsedGermanDate:Wed Feb 11 00:00:00 MST 1970
java.text.ParseException: Unparseable date: "11 Mär 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:19) 
parsedGermanDate:Sat Apr 11 00:00:00 MST 1970
parsedGermanDate:Mon May 11 00:00:00 MDT 1970
parsedGermanDate:Thu Jun 11 00:00:00 MDT 1970
parsedGermanDate:Sat Jul 11 00:00:00 MDT 1970
parsedGermanDate:Tue Aug 11 00:00:00 MDT 1970
parsedGermanDate:Fri Sep 11 00:00:00 MDT 1970
parsedGermanDate:Sun Oct 11 00:00:00 MDT 1970
parsedGermanDate:Wed Nov 11 00:00:00 MST 1970
parsedGermanDate:Fri Dec 11 00:00:00 MST 1970
parsedUkrainianDate:Sun Jan 11 00:00:00 MST 1970
parsedUkrainianDate:Wed Feb 11 00:00:00 MST 1970
parsedUkrainianDate:Wed Mar 11 00:00:00 MST 1970
java.text.ParseException: Unparseable date: "11 Кві 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
java.text.ParseException: Unparseable date: "11 Тра 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
java.text.ParseException: Unparseable date: "11 Чер 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
parsedUkrainianDate:Sat Jul 11 00:00:00 MDT 1970
java.text.ParseException: Unparseable date: "11 Сер 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
parsedUkrainianDate:Fri Sep 11 00:00:00 MDT 1970
java.text.ParseException: Unparseable date: "11 Жов 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
java.text.ParseException: Unparseable date: "11 Лис 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)
java.text.ParseException: Unparseable date: "11 Гру 1970"
    at java.text.DateFormat.parse(Unknown Source)
    at com.example.TestDate.main(TestDate.java:32)

为什么其中一些起作用而另一些不起作用?我该怎么做才能让他们全部工作?我正在使用 Java 版本“1.7.0_11”。


我调整了 assylias 提供的代码以适合我的原始示例:

package com.example;

import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;

public class TestDate {

    public static void main(String[] args) throws IOException {
        List<Locale> localeList = new ArrayList<Locale>();
        localeList.add(new Locale("de"));
        localeList.add(new Locale("en"));
        localeList.add(new Locale("es"));
        localeList.add(new Locale("fr"));
        localeList.add(new Locale("it"));
        localeList.add(new Locale("pt"));
        localeList.add(new Locale("ru"));
        localeList.add(new Locale("uk"));
        localeList.add(new Locale("ko"));
        localeList.add(new Locale("ja"));
        localeList.add(new Locale("zh"));
        for (Locale currentLocale : localeList) {
            DateFormat df;
            SimpleDateFormat DATE_SDF;
            if (currentLocale.toString().equals("ja")) {
                df = new SimpleDateFormat("MMMM", currentLocale);
                DATE_SDF = new SimpleDateFormat("dd MMMM yyyy", currentLocale);
            } else {
                df = new SimpleDateFormat("MMM", currentLocale);
                DATE_SDF = new SimpleDateFormat("dd MMM yyyy", currentLocale);
            }
            Calendar cal = Calendar.getInstance();
            for (int i = 0; i < 12; i++) {
                cal.set(Calendar.MONTH, i);
                String dateString = "11 " + df.format(cal.getTime()) + " 1970";
                Date parsedDate = null;
                try {
                    parsedDate = DATE_SDF.parse(dateString);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                System.out.println("parsedDate " + currentLocale + " (" + df.format(cal.getTime()) + "):" + parsedDate);
            }
        }
    }
}

这是结果:

parsedDate de (Jan):Sun Jan 11 00:00:00 MST 1970
parsedDate de (Feb):Wed Feb 11 00:00:00 MST 1970
parsedDate de (Mrz):Wed Mar 11 00:00:00 MST 1970
parsedDate de (Apr):Sat Apr 11 00:00:00 MST 1970
parsedDate de (Mai):Mon May 11 00:00:00 MDT 1970
parsedDate de (Jun):Thu Jun 11 00:00:00 MDT 1970
parsedDate de (Jul):Sat Jul 11 00:00:00 MDT 1970
parsedDate de (Aug):Tue Aug 11 00:00:00 MDT 1970
parsedDate de (Sep):Fri Sep 11 00:00:00 MDT 1970
parsedDate de (Okt):Sun Oct 11 00:00:00 MDT 1970
parsedDate de (Nov):Wed Nov 11 00:00:00 MST 1970
parsedDate de (Dez):Fri Dec 11 00:00:00 MST 1970
parsedDate en (Jan):Sun Jan 11 00:00:00 MST 1970
parsedDate en (Feb):Wed Feb 11 00:00:00 MST 1970
parsedDate en (Mar):Wed Mar 11 00:00:00 MST 1970
parsedDate en (Apr):Sat Apr 11 00:00:00 MST 1970
parsedDate en (May):Mon May 11 00:00:00 MDT 1970
parsedDate en (Jun):Thu Jun 11 00:00:00 MDT 1970
parsedDate en (Jul):Sat Jul 11 00:00:00 MDT 1970
parsedDate en (Aug):Tue Aug 11 00:00:00 MDT 1970
parsedDate en (Sep):Fri Sep 11 00:00:00 MDT 1970
parsedDate en (Oct):Sun Oct 11 00:00:00 MDT 1970
parsedDate en (Nov):Wed Nov 11 00:00:00 MST 1970
parsedDate en (Dec):Fri Dec 11 00:00:00 MST 1970
parsedDate es (ene):Sun Jan 11 00:00:00 MST 1970
parsedDate es (feb):Wed Feb 11 00:00:00 MST 1970
parsedDate es (mar):Wed Mar 11 00:00:00 MST 1970
parsedDate es (abr):Sat Apr 11 00:00:00 MST 1970
parsedDate es (may):Mon May 11 00:00:00 MDT 1970
parsedDate es (jun):Thu Jun 11 00:00:00 MDT 1970
parsedDate es (jul):Sat Jul 11 00:00:00 MDT 1970
parsedDate es (ago):Tue Aug 11 00:00:00 MDT 1970
parsedDate es (sep):Fri Sep 11 00:00:00 MDT 1970
parsedDate es (oct):Sun Oct 11 00:00:00 MDT 1970
parsedDate es (nov):Wed Nov 11 00:00:00 MST 1970
parsedDate es (dic):Fri Dec 11 00:00:00 MST 1970
parsedDate fr (janv.):Sun Jan 11 00:00:00 MST 1970
parsedDate fr (févr.):Wed Feb 11 00:00:00 MST 1970
parsedDate fr (mars):Wed Mar 11 00:00:00 MST 1970
parsedDate fr (avr.):Sat Apr 11 00:00:00 MST 1970
parsedDate fr (mai):Mon May 11 00:00:00 MDT 1970
parsedDate fr (juin):Thu Jun 11 00:00:00 MDT 1970
parsedDate fr (juil.):Sat Jul 11 00:00:00 MDT 1970
parsedDate fr (août):Tue Aug 11 00:00:00 MDT 1970
parsedDate fr (sept.):Fri Sep 11 00:00:00 MDT 1970
parsedDate fr (oct.):Sun Oct 11 00:00:00 MDT 1970
parsedDate fr (nov.):Wed Nov 11 00:00:00 MST 1970
parsedDate fr (déc.):Fri Dec 11 00:00:00 MST 1970
parsedDate it (gen):Sun Jan 11 00:00:00 MST 1970
parsedDate it (feb):Wed Feb 11 00:00:00 MST 1970
parsedDate it (mar):Wed Mar 11 00:00:00 MST 1970
parsedDate it (apr):Sat Apr 11 00:00:00 MST 1970
parsedDate it (mag):Mon May 11 00:00:00 MDT 1970
parsedDate it (giu):Thu Jun 11 00:00:00 MDT 1970
parsedDate it (lug):Sat Jul 11 00:00:00 MDT 1970
parsedDate it (ago):Tue Aug 11 00:00:00 MDT 1970
parsedDate it (set):Fri Sep 11 00:00:00 MDT 1970
parsedDate it (ott):Sun Oct 11 00:00:00 MDT 1970
parsedDate it (nov):Wed Nov 11 00:00:00 MST 1970
parsedDate it (dic):Fri Dec 11 00:00:00 MST 1970
parsedDate pt (Jan):Sun Jan 11 00:00:00 MST 1970
parsedDate pt (Fev):Wed Feb 11 00:00:00 MST 1970
parsedDate pt (Mar):Wed Mar 11 00:00:00 MST 1970
parsedDate pt (Abr):Sat Apr 11 00:00:00 MST 1970
parsedDate pt (Mai):Mon May 11 00:00:00 MDT 1970
parsedDate pt (Jun):Thu Jun 11 00:00:00 MDT 1970
parsedDate pt (Jul):Sat Jul 11 00:00:00 MDT 1970
parsedDate pt (Ago):Tue Aug 11 00:00:00 MDT 1970
parsedDate pt (Set):Fri Sep 11 00:00:00 MDT 1970
parsedDate pt (Out):Sun Oct 11 00:00:00 MDT 1970
parsedDate pt (Nov):Wed Nov 11 00:00:00 MST 1970
parsedDate pt (Dez):Fri Dec 11 00:00:00 MST 1970
parsedDate ru (янв):Sun Jan 11 00:00:00 MST 1970
parsedDate ru (фев):Wed Feb 11 00:00:00 MST 1970
parsedDate ru (мар):Wed Mar 11 00:00:00 MST 1970
parsedDate ru (апр):Sat Apr 11 00:00:00 MST 1970
parsedDate ru (май):Mon May 11 00:00:00 MDT 1970
parsedDate ru (июн):Thu Jun 11 00:00:00 MDT 1970
parsedDate ru (июл):Sat Jul 11 00:00:00 MDT 1970
parsedDate ru (авг):Tue Aug 11 00:00:00 MDT 1970
parsedDate ru (сен):Fri Sep 11 00:00:00 MDT 1970
parsedDate ru (окт):Sun Oct 11 00:00:00 MDT 1970
parsedDate ru (ноя):Wed Nov 11 00:00:00 MST 1970
parsedDate ru (дек):Fri Dec 11 00:00:00 MST 1970
parsedDate uk (січ):Sun Jan 11 00:00:00 MST 1970
parsedDate uk (лют):Wed Feb 11 00:00:00 MST 1970
parsedDate uk (бер):Wed Mar 11 00:00:00 MST 1970
parsedDate uk (квіт):Sat Apr 11 00:00:00 MST 1970
parsedDate uk (трав):Mon May 11 00:00:00 MDT 1970
parsedDate uk (черв):Thu Jun 11 00:00:00 MDT 1970
parsedDate uk (лип):Sat Jul 11 00:00:00 MDT 1970
parsedDate uk (серп):Tue Aug 11 00:00:00 MDT 1970
parsedDate uk (вер):Fri Sep 11 00:00:00 MDT 1970
parsedDate uk (жовт):Sun Oct 11 00:00:00 MDT 1970
parsedDate uk (лист):Wed Nov 11 00:00:00 MST 1970
parsedDate uk (груд):Fri Dec 11 00:00:00 MST 1970
parsedDate ko (1월):Sun Jan 11 00:00:00 MST 1970
parsedDate ko (2월):Wed Feb 11 00:00:00 MST 1970
parsedDate ko (3월):Wed Mar 11 00:00:00 MST 1970
parsedDate ko (4월):Sat Apr 11 00:00:00 MST 1970
parsedDate ko (5월):Mon May 11 00:00:00 MDT 1970
parsedDate ko (6월):Thu Jun 11 00:00:00 MDT 1970
parsedDate ko (7월):Sat Jul 11 00:00:00 MDT 1970
parsedDate ko (8월):Tue Aug 11 00:00:00 MDT 1970
parsedDate ko (9월):Fri Sep 11 00:00:00 MDT 1970
parsedDate ko (10월):Sun Oct 11 00:00:00 MDT 1970
parsedDate ko (11월):Wed Nov 11 00:00:00 MST 1970
parsedDate ko (12월):Fri Dec 11 00:00:00 MST 1970
parsedDate ja (1月):Sun Jan 11 00:00:00 MST 1970
parsedDate ja (2月):Wed Feb 11 00:00:00 MST 1970
parsedDate ja (3月):Wed Mar 11 00:00:00 MST 1970
parsedDate ja (4月):Sat Apr 11 00:00:00 MST 1970
parsedDate ja (5月):Mon May 11 00:00:00 MDT 1970
parsedDate ja (6月):Thu Jun 11 00:00:00 MDT 1970
parsedDate ja (7月):Sat Jul 11 00:00:00 MDT 1970
parsedDate ja (8月):Tue Aug 11 00:00:00 MDT 1970
parsedDate ja (9月):Fri Sep 11 00:00:00 MDT 1970
parsedDate ja (10月):Sun Oct 11 00:00:00 MDT 1970
parsedDate ja (11月):Wed Nov 11 00:00:00 MST 1970
parsedDate ja (12月):Fri Dec 11 00:00:00 MST 1970
parsedDate zh (一月):Sun Jan 11 00:00:00 MST 1970
parsedDate zh (二月):Wed Feb 11 00:00:00 MST 1970
parsedDate zh (三月):Wed Mar 11 00:00:00 MST 1970
parsedDate zh (四月):Sat Apr 11 00:00:00 MST 1970
parsedDate zh (五月):Mon May 11 00:00:00 MDT 1970
parsedDate zh (六月):Thu Jun 11 00:00:00 MDT 1970
parsedDate zh (七月):Sat Jul 11 00:00:00 MDT 1970
parsedDate zh (八月):Tue Aug 11 00:00:00 MDT 1970
parsedDate zh (九月):Fri Sep 11 00:00:00 MDT 1970
parsedDate zh (十月):Sun Oct 11 00:00:00 MDT 1970
parsedDate zh (十一月):Wed Nov 11 00:00:00 MST 1970
parsedDate zh (十二月):Fri Dec 11 00:00:00 MST 1970

一切顺利。现在我只需要调整我的 JQuery 日期格式和翻译以匹配。我必须将 for 循环中的迭代长度从 11 更新到 12 以包括十二月。 谢谢你!

最佳答案

这些不是有效日期 - 尝试使用此代码获取正确的短月份名称。例如,您会注意到四月是 Квіт,而不是 Кві。至于德国,三月应该是Mrz,而不是März

public static void main(String[] args) throws IOException {
    Locale ukLocale = new Locale("uk");
    DateFormat df = new SimpleDateFormat("MMM", ukLocale);
    Calendar cal = Calendar.getInstance();
    for (int i = 0; i < 11; i++) {
        cal.set(Calendar.MONTH, i);
        System.out.println(df.format(cal.getTime()));
    }
}

哪些输出:

січ
лют
бер
квіт
трав
черв
лип
серп
вер
жовт
лист

关于java.text.ParseException : Unparseable date (German, 乌克兰语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16575519/

有关java.text.ParseException : Unparseable date (German, 乌克兰语)的更多相关文章

  1. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  2. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  3. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  4. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  7. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  8. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  9. java - 为什么 ruby​​ modulo 与 java/other lang 不同? - 2

    我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.

  10. java - Ruby 相当于 Java 的 Collections.unmodifiableList 和 Collections.unmodifiableMap - 2

    Java的Collections.unmodifiableList和Collections.unmodifiableMap在Ruby标准API中是否有等价物? 最佳答案 使用freeze应用程序接口(interface):Preventsfurthermodificationstoobj.ARuntimeErrorwillberaisedifmodificationisattempted.Thereisnowaytounfreezeafrozenobject.SeealsoObject#frozen?.Thismethodretur

随机推荐