java

位置:IT落伍者 >> java >> 浏览文章

Java高级日期概念二


发布日期:2021年07月21日
 
Java高级日期概念二

时区

TimeZone类即javautilTimeZone类的实例包含了一个与格林威治标准时间(GMT)相比较得出的以微秒为单位的时区偏移量而且它还处理夏令时

要获得一个所有支持的进区的列表你可以使用方法TimeZonegetAvailableIDs它将返回一个包含了所有进区ID的字符串数组要知道关于TimeZone类的更多细节可以参看Sun公司的Web站点

为了演示这个概念我们将创建三个时区对象第一个对象将使用getDefault从系统时钟返回时区数据第二个和第三个对象将传入一个时区字符串ID见表C中的代码

表 C

import javautilTimeZone;

import javautilDate;

import javatextDateFormat;

import javautilLocale;

public class DateExample {

public static void main(String[] args) {

// Get the system time zone

TimeZone timeZoneFL = TimeZonegetDefault();

Systemoutprintln(\n + timeZoneFLgetDisplayName());

Systemoutprintln(RawOffset: + timeZoneFLgetRawOffset());

Systemoutprintln(Uses daylight saving: + timeZoneFLuseDaylightTime());

TimeZone timeZoneLondon = TimeZonegetTimeZone(Europe/London);

Systemoutprintln(\n + timeZoneLondongetDisplayName());

Systemoutprintln(RawOffset: + timeZoneLondongetRawOffset());

Systemoutprintln(Uses daylight saving: + timeZoneLondonuseDaylightTime());

烛imeZone timeZoneParis = TimeZonegetTimeZone(Europe/Paris);

Systemoutprintln(\n + timeZoneParisgetDisplayName());

Systemoutprintln(RawOffset: + timeZoneParisgetRawOffset());

Systemoutprintln(Uses daylight saving: + timeZoneParisuseDaylightTime());

}

}

其输出如下

Eastern Standard Time

RawOffset:

Uses daylight saving: true

GMT+:

RawOffset:

Uses daylight saving: true

Central European Standard Time

RawOffset:

Uses daylight saving: true

正如你所看见的TimeZone对象给我们的是原始的偏移量也就是与GMT相差的微秒数而且还会告诉我们这个时区是否使用夏令时有个这个信息我们就能够继续将时区对象和日期格式化器结合在一起在其它的时区和其它的语言显示时间了

国际化的时期显示了时区转换

让我们来看一个结合了国际化显示时区和日期格式化的例子表D为一个在迈阿密和巴黎拥有办公室的公司显示了当前的完整日期和时间对于迈阿密的办公室我们将在每个办公室里用英语显示完整的日期和时间对于巴黎的办公室我们将用法语显示完整的当前日期和时间

表 D

import javautilTimeZone;

import javautilDate;

import javautilLocale;

import javatextDateFormat;

public class DateExample {

public static void main(String[] args) {

Locale localeEN = LocaleUS;

Locale localeFrance = LocaleFRANCE;

TimeZone timeZoneMiami = TimeZonegetDefault();

TimeZone timeZoneParis = TimeZonegetTimeZone(Europe/Paris);

DateFormat dateFormatter = DateFormatgetDateTimeInstance(

DateFormatFULL

DateFormatFULL

localeEN);

DateFormat dateFormatterParis = DateFormatgetDateTimeInstance(

DateFormatFULL

DateFormatFULL

localeFrance);

Date curDate = new Date();

Systemoutprintln(Display for Miami office);

// Print the Miami time zone display name in English

Systemoutprintln(timeZoneMiamigetDisplayName(localeEN));

// Set the time zone of the dateFormatter to Miami time zone

dateFormattersetTimeZone(timeZoneMiami);

// Print the formatted date

Systemoutprintln(dateFormatterformat(curDate));

// Set the time zone of the date formatter to Paris time zone

dateFormattersetTimeZone(timeZoneParis);

// Print the Paris time zone display name in English

Systemoutprintln(timeZoneParisgetDisplayName(localeEN));

// Print the Paris time in english

Systemoutprintln(dateFormatterformat(curDate));

Systemoutprintln(\nDisplay for Paris office);

// Print the Miami time zone display name in French

Systemoutprintln(timeZoneMiamigetDisplayName(localeFrance));

// Set the timezone of the

// dateFormatterParis to Miami time zone

dateFormatterParissetTimeZone(timeZoneMiami);

// Print the formatted date in French

燬ystemoutprintln(dateFormatterParisformat(curDate));

// Set the timezone of the date formatter to Paris time zone

dateFormatterParissetTimeZone(timeZoneParis);

// Print the Paris time zone display name in French

Systemoutprintln(timeZoneParisgetDisplayName(localeFrance));

// Print the Paris time in French

Systemoutprintln(dateFormatterParisformat(curDate));

}

}

这个例子的输出是

Display for Miami office

Eastern Standard Time

Friday October :: PM EDT

Central European Standard Time

Saturday October :: AM CEST

Display for Paris office

GMT:

vendredi octobre h GMT:

GMT+:

samedi octobre h GMT+:

               

上一篇:使用java生成excel功能实现

下一篇:大大优化JAVA程序方法