您的位置:首页技术文章
文章详情页

Java高级日期概念一

【字号: 日期:2024-06-21 18:24:14浏览:2作者:猪猪
内容: 出自:zdnet 如果你的Java 程序向处在不同时区或者不同国家的用户显示时间和日期,那么你需要了解Java日期类的一些更加高级的方面。在“使用Java Date和Calendar类计算,定制和解析日期的这篇文章里我们提供了对日期,日期数据的格式化,日期数据的解析和日期计算的一个概览。对于这些概念的深入的理解对于讨论更高级的诸如时区,国际化标准格式和SQL日期数据等这些有关日期的问题是关键的。我们在本文中讨论的类将包含java.text.DateFormat,以及java.util.TimeZone和java.util.Locate。我们还将讨论如何使用一个java.util.Date的子类java.sql.Date来从Oracle数据库里提取和保存Java日期数据。地区的问题在我们国际化我们的日期数据以前,我们需要进一步的学习Locale类,也就是java.util.Locale。Locale类的一个实例通常包含国家和语言信息。其中的每一个部分都是由基于国际标准化组织(ISO)制定的国家代码ISO-3166和语言代码ISO-639的两字符的字符串构成的。让我们来创建两个Locale实例,其中一个对应的是美国英语而另一个对应的是法国法语。见表A。表A import java.util.Locale;public class DateExample6 {public static void main(String[] args) {// Create a locale for the English language in the US.Locale localeEN = new Locale('en', 'US');System.out.println('Display Name: ' +localeEN.getDisplayName());System.out.println('Country: ' + localeEN.getCountry());System.out.println('Language: ' + localeEN.getLanguage());// Create a locale for the French language in France.Locale localeFR = new Locale('fr', 'FR');System.out.println('nDisplay Name: ' +localeFR.getDisplayName());System.out.println('Country: ' + localeFR.getCountry());System.out.println('Language: ' + localeFR.getLanguage());// Display the English-US locale in FrenchSystem.out.println('nen Display Name in French: ' +localeEN.getDisplayName(localeFR));}}在这个例子中,我们用getDisplayName方法来显示Locale的一个更易读的文本。你还应该注意到我们在最后一次调用getDisplayName的时候,我们在对English Locale对象调用getDisplayName的时候同时传递了French Locale对象。这允许我们选择显示Locale对象所用的语言,让我们用英语显示法语Locale对象的内容。下面是这个例子的输出:Display Name: English (United States)Country: USLanguage: enDisplay Name: French (France)Country: FRLanguage: fren Display Name in French: anglais (états-Unis)多个地域的日期格式化使用java.util.Locale和java.text.DateFormat类我们就能够格式化日期数据把它显示给在另一个地域的用户,比方法国。表B中的例子为英语和法语各创建了一个完整的日期格式化器。表 B import java.util.Locale;import java.util.Date;import java.text.DateFormat;public class DateExample7 {public static void main(String[] args) {// Get the current system date and time.Date date = new Date();// Get a France locale using a Locale constant.Locale localeFR = Locale.FRANCE;// Create an English/US locale using the constructor.Locale localeEN = new Locale('en', 'US' );// Get a date time formatter for display in France.DateFormat fullDateFormatFR =DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,localeFR);// Get a date time formatter for display in the U.S.DateFormat fullDateFormatEN =DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,localeEN);System.out.println('Locale: ' + localeFR.getDisplayName());System.out.println(fullDateFormatFR.format(date));System.out.println('Locale: ' + localeEN.getDisplayName());System.out.println(fullDateFormatEN.format(date));}}这个例子的输出是:Locale: French (France)vendredi 5 octobre 2001 21 h 05 GMT-04:00Locale: English (United States)Friday, October 5, 2001 9:05:54 PM EDT注意这个输出包括了时区信息:GMT-04:00 和 PM EDT。这个时区是人系统的时区设置里捕获的。你可以看见,日期是以那个地区的用户期望的格式显示的。让我们等一下来看看时区的概念 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
标签: Java
相关文章: