`
cakin24
  • 浏览: 1396384 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

DateFormat类在国际化中的应用

    博客分类:
  • java
 
阅读更多

1 DateFormat类简介
DateFormat都包含了format和parse方法,其中format用于将日期格式化成字符串,parse用于将字符串解析成日期。


2 DateFormat类的方法
getDateInstance:返回一个日期格式器,它格式化后的字符串只有日期,没有时间。该方法可以传入多个参数,用于指定日期样式和Locale等参数。如果不指定这些参数,则使用默认参数。
getTimeInstance:返回一个时间格式器,它格式化后的字符串只有时间,没有日期。该方法可以传入多个参数,用于指定时间样式和Locale等参数。如果不指定这些参数,则使用默认参数。
getDateTimeInstance:返回一个日期、时间格式器,它格式化后的字符串既有日期,也有时间。该方法可以传入多个参数,用于指定日期样式、时间样式和Locale等参数。如果不指定这些参数,则使用默认参数。

 

3 代码示例

import java.util.*;
import java.text.*;
import static java.text.DateFormat.*;

public class DateFormatTest
{
	public static void main(String[] args)
		throws ParseException
	{
		// 需要被格式化的时间
		Date dt = new Date();
		// 创建两个Locale,分别代表中国、美国、法国
		Locale[] locales = {Locale.CHINA, Locale.US,Locale.FRANCE};
		DateFormat[] df = new DateFormat[24];
		// 为上面两个Locale创建16个DateFormat对象
		for (int i = 0 ; i < locales.length ; i++)
		{
			df[i * 8] = DateFormat.getDateInstance(SHORT, locales[i]);
			df[i * 8 + 1] = DateFormat.getDateInstance(MEDIUM, locales[i]);
			df[i * 8 + 2] = DateFormat.getDateInstance(LONG, locales[i]);
			df[i * 8 + 3] = DateFormat.getDateInstance(FULL, locales[i]);
			df[i * 8 + 4] = DateFormat.getTimeInstance(SHORT, locales[i]);
			df[i * 8 + 5] = DateFormat.getTimeInstance(MEDIUM , locales[i]);
			df[i * 8 + 6] = DateFormat.getTimeInstance(LONG , locales[i]);
			df[i * 8 + 7] = DateFormat.getTimeInstance(FULL , locales[i]);
		}
		for (int i = 0 ; i < locales.length ; i++)
		{
			String tip = i == 0 ? "----中国日期格式----":
				i ==1 ?"----美国日期格式----":"----法国日期格式----";
			System.out.println(tip);
			System.out.println("SHORT格式的日期格式:"
				+ df[i * 8].format(dt));
			System.out.println("MEDIUM格式的日期格式:"
				+ df[i * 8 + 1].format(dt));
			System.out.println("LONG格式的日期格式:"
				+ df[i * 8 + 2].format(dt));
			System.out.println("FULL格式的日期格式:"
				+ df[i * 8 + 3].format(dt));
			System.out.println("SHORT格式的时间格式:"
				+ df[i * 8 + 4].format(dt));
			System.out.println("MEDIUM格式的时间格式:"
				+ df[i * 8 + 5].format(dt));
			System.out.println("LONG格式的时间格式:"
				+ df[i * 8 + 6].format(dt));
			System.out.println("FULL格式的时间格式:"
				+ df[i * 8 + 7].format(dt));
		}


		String str1 = "2014-12-12";
		String str2 = "2014年12月10日";
		// 下面输出 Fri Dec 12 00:00:00 CST 2014
		System.out.println(DateFormat.getDateInstance().parse(str1));
		// 下面输出 Wed Dec 10 00:00:00 CST 2014
		System.out.println(DateFormat.getDateInstance(LONG).parse(str2));
		// 下面抛出 ParseException异常
		System.out.println(DateFormat.getDateInstance().parse(str2));
	}
}

 
4 运行结果

----中国日期格式----
SHORT格式的日期格式:16-9-3
MEDIUM格式的日期格式:2016-9-3
LONG格式的日期格式:2016年9月3日
FULL格式的日期格式:2016年9月3日 星期六
SHORT格式的时间格式:上午11:51
MEDIUM格式的时间格式:11:51:11
LONG格式的时间格式:上午11时51分11秒
FULL格式的时间格式:上午11时51分11秒 CST
----美国日期格式----
SHORT格式的日期格式:9/3/16
MEDIUM格式的日期格式:Sep 3, 2016
LONG格式的日期格式:September 3, 2016
FULL格式的日期格式:Saturday, September 3, 2016
SHORT格式的时间格式:11:51 AM
MEDIUM格式的时间格式:11:51:11 AM
LONG格式的时间格式:11:51:11 AM CST
FULL格式的时间格式:11:51:11 AM CST
----法国日期格式----
SHORT格式的日期格式:03/09/16
MEDIUM格式的日期格式:3 sept. 2016
LONG格式的日期格式:3 septembre 2016
FULL格式的日期格式:samedi 3 septembre 2016
SHORT格式的时间格式:11:51
MEDIUM格式的时间格式:11:51:11
LONG格式的时间格式:11:51:11 CST
FULL格式的时间格式:11 h 51 CST
Fri Dec 12 00:00:00 CST 2014
Wed Dec 10 00:00:00 CST 2014
Exception in thread "main" java.text.ParseException: Unparseable date: "2014年12月10日"
 at java.text.DateFormat.parse(DateFormat.java:366)
 at DateFormatTest.main(DateFormatTest.java:59)

 

5 运行说明

上面代码的最后一行代码解析日期字符串时引发ParseException异常,因为“2014年12月10日”是一个LONG样式的日期字符串,必须用LONG格式的DateFormat实例解析,否则将抛出异常。

分享到:
评论

相关推荐

    java使用DateFormat类转换时间格式.docx

    ### Java使用DateFormat类转换时间格式 #### 一、引言 在Java编程中,处理日期与...这对于需要处理国际化或多语言环境的应用程序尤其有用。理解并熟练掌握`DateFormat`类的使用对于任何Java开发者都是非常重要的。

    android国际化

    在IT行业中,Android国际化是一个非常重要的议题,尤其对于开发者来说,因为这关乎到应用程序的全球扩展性和用户体验。本文将深入探讨“Android国际化”的概念、重要性以及实现方式,结合给出的资源【eoeAndroid特刊...

    J2EE国际化的基础知识

    在Java平台中,处理日期和时间的国际化主要依赖于`java.text.DateFormat`类。通过`DateFormat`,开发者可以灵活地格式化日期,使其适应不同地区的日期显示习惯。例如,在代码示例中,我们创建了三个不同地区(本地、...

    Java中的国际化日期和时间格式实现:策略与实践

    国际化应用程序需要考虑不同地区用户的日期和时间格式偏好。Java提供了强大的国际化支持,允许开发者根据用户的地区设置来格式化和解析日期和时间。本文将详细介绍如何在Java中实现国际化的日期和时间格式,包括国际...

    java国际化实现框架底层源码

    在大型项目中,国际化框架如Spring Framework提供了更高级的国际化支持,如MessageSource接口,它可以方便地集成到MVC应用中,处理视图层的国际化问题。 7. **测试与调试** 国际化功能的测试通常需要模拟不同的...

    Java国际化编程及其实现.rar

    在Java中,国际化主要通过java.util包下的Locale、ResourceBundle和Format类来实现。 首先,Locale类代表一个特定的语言环境,包括语言、国家和变体。例如,"zh_CN"代表简体中文,"en_US"代表美式英语。开发者可以...

    Spring国际化案例

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户的地区或语言设置提供相应的显示内容。本案例将深入探讨如何在Spring应用中实现国际化。 首先...

    多国语言国际化

    在iOS应用开发中,"多国语言国际化"(Internationalization)是一个重要的环节,它使得应用程序能够适应不同国家和地区用户的需求,展示相应的语言环境。本文将深入探讨如何在iOS项目中实现多国语言国际化,以及涉及...

    java实现国际化

    在实际项目中,为了确保代码的可维护性和扩展性,通常会使用专门的国际化框架,如Spring Framework的`MessageSource`接口,或者Apache Commons Lang的`MessageFormat`类,它们提供更高级别的抽象和便利功能。...

    swift-iOS国际化工具

    Swift-iOS国际化工具是iOS应用开发中的一个重要组成部分,它使得应用程序能够支持多种语言,从而适应全球用户的需求。在iOS开发中,国际化不仅仅是翻译文本那么简单,它涉及到资源的本地化、日期时间格式、货币符号...

    Spring实现国际化的一个小例子

    在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...

    javaweb 国际化:DateFormat,NumberFormat,MessageFormat,ResourceBundle的使用

    在国际化应用中,消息通常需要根据不同的地区显示不同的语言,因此MessageFormat与ResourceBundle结合使用可以非常方便地实现这一点。消息格式字符串中通过占位符来标识动态内容的位置,例如"Welcome, {0}!"中的{0}...

    java国际化.ppt

    Java 国际化(i18n)是开发支持多语言的应用程序的关键步骤,使得软件能够适应不同国家和...通过以上知识点,开发者可以构建出具有强大国际化功能的Java应用程序,使其能在全球范围内为用户提供一致且本地化的体验。

    javaI18N[国际化]

    Java I18N(国际化)是Java平台提供的一项重要功能,它使得开发的软件能够适应全球不同地区的语言和文化环境。...理解和熟练运用这些概念和工具,对于任何想要打造国际化的Java应用的开发者来说都是至关重要的。

    通俗易懂地讲解Android app国际化实现方式,开发需要注意的地方

    在Android应用开发中,实现应用的国际化是一项重要的工作,它使得应用能够适应全球不同语言和地区的需求,提升用户体验。本文将详细讲解Android应用国际化的实现方式以及在开发过程中需要注意的关键点。 首先,...

    STRUTS2国际化的问题

    这包括了如何在配置文件中进行国际化设置,以及在后端或前端实现国际化的过程。 #### 二、配置文件中的国际化实现 1. **资源文件的配置**:通常,Struts2框架会使用.properties文件来存储各种语言版本的消息和提示...

    dateformatjs一个超轻量级的JS日期处理库

    在这个项目中,我们主要关注的是 `dateformat.js` 的核心功能及其在实际开发中的应用。这个库的大小不足 5KB,这使得它在对性能有严格要求或者资源有限的环境中特别受欢迎。 ### 1. 日期格式化 `dateformat.js` 最...

    程序国际化.zip

    此外,Android的Locale类和Resources类在国际化过程中扮演着重要角色。Locale对象代表了一个特定的语言和地区,可以用来切换应用的语言环境。Resources类则负责加载相应的资源,根据设备的locale动态选择合适的字符...

    JAVA-Internationalization-tutorial.rar_JAVA 国际化

    这个教程可能涵盖了创建资源包、处理Locale、使用MessageFormat和ChoiceFormat,以及如何在实际应用中集成国际化功能。 总的来说,Java的国际化能力使得开发者能够轻松地使他们的软件适应全球市场,提供多种语言的...

Global site tag (gtag.js) - Google Analytics