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类转换时间格式 #### 一、引言 在Java编程中,处理日期与...这对于需要处理国际化或多语言环境的应用程序尤其有用。理解并熟练掌握`DateFormat`类的使用对于任何Java开发者都是非常重要的。
在IT行业中,Android国际化是一个非常重要的议题,尤其对于开发者来说,因为这关乎到应用程序的全球扩展性和用户体验。本文将深入探讨“Android国际化”的概念、重要性以及实现方式,结合给出的资源【eoeAndroid特刊...
在Java平台中,处理日期和时间的国际化主要依赖于`java.text.DateFormat`类。通过`DateFormat`,开发者可以灵活地格式化日期,使其适应不同地区的日期显示习惯。例如,在代码示例中,我们创建了三个不同地区(本地、...
国际化应用程序需要考虑不同地区用户的日期和时间格式偏好。Java提供了强大的国际化支持,允许开发者根据用户的地区设置来格式化和解析日期和时间。本文将详细介绍如何在Java中实现国际化的日期和时间格式,包括国际...
在大型项目中,国际化框架如Spring Framework提供了更高级的国际化支持,如MessageSource接口,它可以方便地集成到MVC应用中,处理视图层的国际化问题。 7. **测试与调试** 国际化功能的测试通常需要模拟不同的...
在Java中,国际化主要通过java.util包下的Locale、ResourceBundle和Format类来实现。 首先,Locale类代表一个特定的语言环境,包括语言、国家和变体。例如,"zh_CN"代表简体中文,"en_US"代表美式英语。开发者可以...
在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户的地区或语言设置提供相应的显示内容。本案例将深入探讨如何在Spring应用中实现国际化。 首先...
在iOS应用开发中,"多国语言国际化"(Internationalization)是一个重要的环节,它使得应用程序能够适应不同国家和地区用户的需求,展示相应的语言环境。本文将深入探讨如何在iOS项目中实现多国语言国际化,以及涉及...
在实际项目中,为了确保代码的可维护性和扩展性,通常会使用专门的国际化框架,如Spring Framework的`MessageSource`接口,或者Apache Commons Lang的`MessageFormat`类,它们提供更高级别的抽象和便利功能。...
Swift-iOS国际化工具是iOS应用开发中的一个重要组成部分,它使得应用程序能够支持多种语言,从而适应全球用户的需求。在iOS开发中,国际化不仅仅是翻译文本那么简单,它涉及到资源的本地化、日期时间格式、货币符号...
在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...
Java 国际化(i18n)是开发支持多语言的应用程序的关键步骤,使得软件能够适应不同国家和...通过以上知识点,开发者可以构建出具有强大国际化功能的Java应用程序,使其能在全球范围内为用户提供一致且本地化的体验。
Java I18N(国际化)是Java平台提供的一项重要功能,它使得开发的软件能够适应全球不同地区的语言和文化环境。...理解和熟练运用这些概念和工具,对于任何想要打造国际化的Java应用的开发者来说都是至关重要的。
在Android应用开发中,实现应用的国际化是一项重要的工作,它使得应用能够适应全球不同语言和地区的需求,提升用户体验。本文将详细讲解Android应用国际化的实现方式以及在开发过程中需要注意的关键点。 首先,...
这包括了如何在配置文件中进行国际化设置,以及在后端或前端实现国际化的过程。 #### 二、配置文件中的国际化实现 1. **资源文件的配置**:通常,Struts2框架会使用.properties文件来存储各种语言版本的消息和提示...
在这个项目中,我们主要关注的是 `dateformat.js` 的核心功能及其在实际开发中的应用。这个库的大小不足 5KB,这使得它在对性能有严格要求或者资源有限的环境中特别受欢迎。 ### 1. 日期格式化 `dateformat.js` 最...
此外,Android的Locale类和Resources类在国际化过程中扮演着重要角色。Locale对象代表了一个特定的语言和地区,可以用来切换应用的语言环境。Resources类则负责加载相应的资源,根据设备的locale动态选择合适的字符...
这个教程可能涵盖了创建资源包、处理Locale、使用MessageFormat和ChoiceFormat,以及如何在实际应用中集成国际化功能。 总的来说,Java的国际化能力使得开发者能够轻松地使他们的软件适应全球市场,提供多种语言的...
`DateFormat`和`SimpleDateFormat`类在处理国际化时也很有用,可以通过`setLocale(Locale locale)`方法设置区域设置,以适应不同地区的日期和时间格式习惯。 总之,`DateFormat`和`SimpleDateFormat`是Java中处理...