第一部分 Calendar介绍

Calendar 定义:

public abstract class Calendar implements Serializable, 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对象。

参考如下代码:

public static Calendar getInstance()

{

// 调用createCalendar()创建日历

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

cal.sharedZone = true;

return cal;

}

public static Calendar getInstance(TimeZone zone)

{

// 调用createCalendar()创建日历

return createCalendar(zone, Locale.getDefault());

}

public static Calendar getInstance(Locale aLocale) {

// 调用createCalendar()创建日历

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

cal.sharedZone = true;

return cal;

}

public static Calendar getInstance(TimeZone zone,

Locale aLocale)

{

// 调用createCalendar()创建日历

return createCalendar(zone, aLocale);

}

private static Calendar createCalendar(TimeZone zone,

Locale aLocale)

{

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

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

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

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

return new sun.util.BuddhistCalendar(zone, aLocale);

} else if ("JP".equals(aLocale.getVariant())

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

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

return new JapaneseImperialCalendar(zone, aLocale);

}

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

return new GregorianCalendar(zone, aLocale);

}

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

第一部分 Calendar介绍相关推荐

  1. 第一部分Calendar介绍

    第一部分 Calendar介绍 Calendar 定义: 1 publicabstract class Calendar implementsSerializable, Cloneable, Comp ...

  2. Redis入门第一篇【介绍、安装】

    tags: Redis title: Redis入门第一篇[介绍.安装] 为什么要用Redis 我对Redis的简单理解:Redis相信学JavaEE的同学都听过这个名词,它是一个缓存数据库. Red ...

  3. Base64系列第一篇 Base64介绍

    本文地址:http://blog.csdn.net/morewindows/article/details/11871429转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/Mo ...

  4. 网易云课堂Web安全工程师课程分享——第一章 Web介绍

    第一节 Web介绍 课程回顾: Web是什么? Web发展分为哪几个阶段? Web安全问题发展形势? Web的工作流程? 浏览器是如何工作的? 总结回答: Web指的是World Wide Web,平 ...

  5. GraphQL实战-第一篇-GraphQL介绍

    GraphQL实战-第一篇-GraphQL介绍 GraphQL的前世今生 Facebook的业务线有移动端,PC端和其它端,不同的场景下对一个资源所需要的信息是不同的.如移动端需要User的a.b.c ...

  6. 第一章网络介绍计算题及其解析[计算机网络]

    总结一下计算机网络学期课程所学,方便以后的复习和补充.       本文主要是第一章网络介绍计算题部分.需要掌握的知识点如下图.       需要手写记录的笔记pdf和课本pdf可私信. 文章目录 第 ...

  7. 乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍(可供技术选型时使用)

    乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍 RabbitMQ介绍 1.RabbitMQ技术简介 2.RabbitMQ其他扩展插件 2.1监控工具rabbitmq-managemen ...

  8. 循环神经网络教程-第一部分 RNN介绍

    循环神经网络教程-第一部分 RNN介绍 循环神经网络(RNN)是非常流行的模型,它在许多NLP任务上都表现出了巨大的潜力.虽然它很流行,但是详细介绍RNN以及如何实现RNN的文章却很少.这篇教程旨在解 ...

  9. 医学数字影像和通讯(DICOM)---DICOM标准3.0 第一部分:介绍和概述

    前言 ACR(美国放射学会)和NAMA(国家电子制造商协会)组成了一个联合委员会来开发一个医学数字成像和通讯的标准----DICOM.这个标准按照NEMA的程序制定. 这个标准通过与其他标准化组织的交 ...

最新文章

  1. ycsb两个阶段说明
  2. Fastadmin 写关联命名时,最好前后台用同一个model,方便管理(会出现命名空间问题)...
  3. 容齐的身世_白发容齐真正身份
  4. 五十九、Vue中的样式绑定
  5. 嵌入式Linux系统编程学习之五gcc/g++编译器
  6. 华为Mate 40 Pro概念渲染图曝光:首发屏下摄像头技术?
  7. 华为nova 5全新外观曝光:水滴全面屏设计 边框下巴极窄
  8. 谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜丨Demo可用
  9. C++面向对象的程序开发
  10. 用python计算2+4+6+…+20的值_Day4-Python-循环和分之学习-2018/7/19
  11. 64位字长的高性能微型计算机,什么是字长字节和字长的区别
  12. win10 系统 程序员计算器面板介绍和功能使用
  13. 蛮牛精选七款Unity插件
  14. 虚拟机安装银河麒麟V10系统
  15. aws打开慢_亚马逊AWS服务器访问较慢,如何快速访问AWS服务器呢?
  16. lazysnapping
  17. 联想thinkbook14+2023款和2022款区别对比评测
  18. 计算文本相似度-Word2Vec计算
  19. swap分区、硬盘和磁盘
  20. 蓝牙协议规范--L2CAP

热门文章

  1. 【OpenCV 例程200篇】28. 图像的旋转(直角旋转)
  2. Python数模笔记-模拟退火算法(1)多变量函数优化
  3. 思科虚拟机配置dhpc服务器,思科模拟器配置DHCP
  4. labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...
  5. mysql 多项式_mysql主从复制原理及实现
  6. 缺陷调研报告_质量零缺陷 | 打造极致产品的质量管理之道
  7. python课程水平测试成绩查询_学业水平考试成绩查询系统入口
  8. Python习题week1
  9. jmeter5.1.1启动提示not able to find java executable or version的解决办法
  10. 百度陆奇最新内部演讲:如何成为一个优秀的工程师?