第一部分Calendar介绍

第一部分 Calendar介绍
Calendar 定义:

1

publicabstract class Calendar implementsSerializable, Cloneable, Comparable<Calendar> {}

Calendar 可以看作是一个抽象类。
它的实现,采用了设计模式中的工厂方法。表现在:当我们获取Calendar实例时,Calendar会根据传入的参数来返回相应的Calendar对象。获取Calendar实例,有以下两种方式:
(1) 当我们通过 Calendar.getInstance() 获取日历时,默认的是返回的一个GregorianCalendar对象。
     GregorianCalendar是Calendar的一个实现类,它提供了世界上大多数国家/地区使用的标准日历系统。
(2) 当我们通过 Calendar.getInstance(TimeZone timezone, Locale locale) 或 Calendar.getInstance(TimeZone timezone) 或 Calendar.getInstance(Locale locale)获取日历时,是返回“对应时区(zone) 或 地区(local)等所使用的日历”。 
     例如,若是日本,则返回JapaneseImperialCalendar对象。
参考如下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

publicstatic Calendar getInstance()

{

 // 调用createCalendar()创建日历

 Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());

 cal.sharedZone = true;

 returncal;

}

 

 

publicstatic Calendar getInstance(TimeZone zone)

{

 // 调用createCalendar()创建日历

 returncreateCalendar(zone, Locale.getDefault());

}

 

 

publicstatic Calendar getInstance(Locale aLocale) {

 // 调用createCalendar()创建日历

 Calendar cal = createCalendar(TimeZone.getDefaultRef(), aLocale);

 cal.sharedZone = true;

 returncal;

}

 

publicstatic Calendar getInstance(TimeZone zone,

   Locale aLocale)

{

 // 调用createCalendar()创建日历

 returncreateCalendar(zone, aLocale);

}

 

privatestatic Calendar createCalendar(TimeZone zone,

   Locale aLocale)

{

 // (01) 若地区是“th”,则返回BuddhistCalendar对象

 // (02) 若地区是“JP”,则返回JapaneseImperialCalendar对象

 if("th".equals(aLocale.getLanguage())

 && ("TH".equals(aLocale.getCountry()))) {

 returnnew sun.util.BuddhistCalendar(zone, aLocale);

 }elseif ("JP".equals(aLocale.getVariant())

 &&"JP".equals(aLocale.getCountry())

 &&"ja".equals(aLocale.getLanguage())) {

 returnnew JapaneseImperialCalendar(zone, aLocale);

 }

 

 // (03) 否则,返回GregorianCalendar对象

 returnnew GregorianCalendar(zone, aLocale);

}

 

当我们获取Calendar实例之后,就可以通过Calendar提供的一些列方法来操作日历。

 

 

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值