博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析特殊locale的日期格式
阅读量:6946 次
发布时间:2019-06-27

本文共 2676 字,大约阅读时间需要 8 分钟。

还是在工作中遇到的问题,一般是在UI上提供日期Widget,让用户去选日期,一般的逻辑是DateFormatter的short日期模式。然而在UI上,有些locale的格式(比如Polish)是Medium格式:yyyy/mm/dd,但是Polish locale的Short日期模式是dd/mm/yy。

对java.text.DateFormat.parse(String source, ParsePosition pos)而言,默认的解析是宽大的:即使用户输入的日期不是以对象要求的格式输入,也能够解析为日期,然后解析会成功。

但是对于特殊的locale,比如Polish,鉴于format不一致(yyyy/mm/dd vs dd/mm/yy),一个Medium模式的字符串不能使用Dateformat对象的Short日期模式去解析,如果试图去解析的话,会抛出异常。

解决方法:当使用Short模式解析不成功的话,使用Medium模式去解析。

package tools;import java.text.DateFormat;import java.text.ParseException;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Locale;public class MedeiumAndShortDateFormalForAllLocale {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        List
allLocale = new ArrayList
(); System.out.println(System.getProperty("java.version")); Locale[] locales = Locale.getAvailableLocales(); allLocale = Arrays.asList(locales); Date date = new Date(); DateFormat df = null; String strDate = DateFormat.getDateInstance(DateFormat.SHORT).format(date); System.out.println(strDate); for(Locale locale : allLocale){ if(locale != null){ df = DateFormat.getDateInstance(DateFormat.SHORT, locale); } try { date = df.parse(strDate); } catch (ParseException e) { // TODO Auto-generated catch block System.out.println("Error in parsing locale with Short: " + locale + "==>" + locale.getDisplayCountry()); df = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); try { date = df.parse(strDate); } catch (ParseException e1) { // TODO Auto-generated catch block System.out.println("Error in parsing locale with Medium: " + locale + "==>" + locale.getDisplayCountry()); e1.printStackTrace(); } e.printStackTrace(); }// DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); System.out.println("Medium Fromat for Today: " + locale + "=>" + locale.getCountry() + "=>" + locale.getDisplayCountry() + "=>" + df.format(date)); } }}

 

转载于:https://www.cnblogs.com/bluescorpio/archive/2013/03/13/2957698.html

你可能感兴趣的文章
最短路径
查看>>
手机评测
查看>>
java ssm 后台框架平台 项目源码 websocket 即时通讯 IM quartz springmvc
查看>>
我的小爬虫—cocoa 中的正则表达式
查看>>
HTML5 中 div 和section以及 article 的不同之处
查看>>
Yii2学习笔记之场景
查看>>
CS Website
查看>>
docker - 容器里安装ssh
查看>>
Ant design 组件开发
查看>>
完整性约束
查看>>
docker 17.09.0-ce 启动更换网络地址
查看>>
关于《大道至简》第六章的收获
查看>>
JavaWeb部分面试题
查看>>
mac osx 系统开发php 的一些工具
查看>>
Tcp的三次握手,以及原理详解
查看>>
sprintboot 中占位符及多环境配置
查看>>
Oracle资源
查看>>
你需要一点点CIL
查看>>
java连接mysql的一个小例子
查看>>
laravel queue 修改之后不生效的坑
查看>>