`
hpjianhua
  • 浏览: 241894 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

JDK源码中对当前时间的一些用法

 
阅读更多
JDK源码中对当前时间的一些用法:
		 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
		 // if no ids were returned, something is wrong. get out.
		 if (ids.length == 0)
		     System.exit(0);

		  // begin output
		 System.out.println("Current Time");

		 // create a Pacific Standard Time time zone
		 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

		 // set up rules for daylight savings time
		 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
		 pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

		 // create a GregorianCalendar with the Pacific Daylight time zone
		 // and the current date and time
		 Calendar calendar = new GregorianCalendar(pdt);
		 Date trialTime = new Date();
		 calendar.setTime(trialTime);

		 // print out a bunch of interesting things
		 System.out.println("ERA: " + calendar.get(Calendar.ERA));
		 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
		 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
		 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
		 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
		 System.out.println("DATE: " + calendar.get(Calendar.DATE));
		 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
		 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
		 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
		 System.out.println("DAY_OF_WEEK_IN_MONTH: "
		                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
		 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
		 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
		 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
		 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
		 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
		 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
		 System.out.println("ZONE_OFFSET: "
		                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
		 System.out.println("DST_OFFSET: "
		                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

		 System.out.println("Current Time, with hour reset to 3");
		 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
		 calendar.set(Calendar.HOUR, 3);
		 System.out.println("ERA: " + calendar.get(Calendar.ERA));
		 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
		 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
		 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
		 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
		 System.out.println("DATE: " + calendar.get(Calendar.DATE));
		 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
		 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
		 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
		 System.out.println("DAY_OF_WEEK_IN_MONTH: "
		                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
		 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
		 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
		 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
		 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
		 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
		 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
		 System.out.println("ZONE_OFFSET: "
		        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
		 System.out.println("DST_OFFSET: "
		        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours		


输出:
Current Time
ERA: 1
YEAR: 2011
MONTH: 8
WEEK_OF_YEAR: 37
WEEK_OF_MONTH: 2
DATE: 4
DAY_OF_MONTH: 4
DAY_OF_YEAR: 247
DAY_OF_WEEK: 1
DAY_OF_WEEK_IN_MONTH: 1
AM_PM: 1
HOUR: 11
HOUR_OF_DAY: 23
MINUTE: 44
SECOND: 41
MILLISECOND: 81
ZONE_OFFSET: -8
DST_OFFSET: 1
Current Time, with hour reset to 3
ERA: 1
YEAR: 2011
MONTH: 8
WEEK_OF_YEAR: 37
WEEK_OF_MONTH: 2
DATE: 4
DAY_OF_MONTH: 4
DAY_OF_YEAR: 247
DAY_OF_WEEK: 1
DAY_OF_WEEK_IN_MONTH: 1
AM_PM: 1
HOUR: 3
HOUR_OF_DAY: 15
MINUTE: 44
SECOND: 41
MILLISECOND: 81
ZONE_OFFSET: -8
DST_OFFSET: 1

2
3
分享到:
评论

相关推荐

    在Eclipse或MyEclipse中引入JDK源码 .doc

    ### 在Eclipse或MyEclipse中引入JDK源码 #### 背景与意义 在进行Java开发的过程中,特别是当开发者需要深入了解某些类、接口或方法的具体实现时,查看其源码是一种非常有效的学习手段。然而,在使用Eclipse或...

    IDEA如何查看JDK源码

    - 使用`Ctrl + Shift + F7`(Mac用户使用`Cmd + Shift + F7`)可以在当前文件中高亮显示所选元素的所有引用。 - `Ctrl + H`(Mac用户使用`Cmd + H`)可以打开类型层次结构视图,帮助理解类继承关系和接口实现情况...

    jdk,jvm源码

    堆存储对象实例,方法区存放类信息,程序计数器记录当前线程执行的指令地址,虚拟机栈保存每个方法的局部变量、操作数栈等,本地方法栈为JNI调用的本地方法服务。 3. 指令集:JVM使用一套基于栈的指令集,这些指令...

    JDK1.5线程池源码及详细注释

    4. `unit`: 时间单位,用于衡量`keepAliveTime`,可以选择`TimeUnit`中的各种时间单位,如毫秒、秒等。 5. `workQueue`: 线程池所使用的缓冲队列,用于存储待处理的任务。当线程数量达到`corePoolSize`且队列未满时...

    bcprov-jdk15on-1.56.jar中文文档.zip

    # 使用方法: 解压 【bcprov-jdk15on-***.jar中文文档.zip】,再解压其中的 【bcprov-jdk15on-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ...

    关于 ArrayList get(0)的异常JDK源码跟进

    总的来说,本篇博客通过对ArrayList`get(0)`异常的JDK源码分析,揭示了ArrayList的基本操作和异常处理机制,提醒开发者在使用ArrayList时注意数组边界和初始化。同时,这也是一次对Java集合框架的深入学习,有助于...

    jdk源码阅读一:ArrayList

    ### jdk源码阅读一:ArrayList #### 一、ArrayList简介与特性 ArrayList作为Java集合框架中的重要组成部分,被广泛应用于各种应用场景。它的主要特点包括: - **基于数组实现**:ArrayList采用数组作为其底层数据...

    bcprov-jdk15on-1.60.jar中文文档.zip

    # 使用方法: 解压 【bcprov-jdk15on-***.jar中文文档.zip】,再解压其中的 【bcprov-jdk15on-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ...

    解决调试JDK源码时,不能查看变量的值问题

    当我们尝试在集成开发环境(IDE)中调试JDK源码时,经常会遇到一个问题:无法查看方法内部变量的值。这一问题通常是由于JDK的当前版本在编译过程中去除了调试信息所导致的。为了能在调试时查看变量值,需要重新编译...

    JDK1.5的源代码

    泛型是JDK 1.5最重要的特性之一,它允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和可读性。通过泛型,可以确保容器(如ArrayList、HashMap)中的元素类型在编译时就被限定,避免了运行时的类型转换...

    JDK源码之PriorityQueue解析

    JDK源码之PriorityQueue解析 一、优先队列的应用 优先队列是程序开发中常用的数据结构之一。它可以应用于多个领域,如操作系统的进程调度、爬虫系统的任务调度等。在这些应用中,优先队列可以确保高优先级的任务或...

    ArrayList源码Jdk1.8

    ### ArrayList源码解析(JDK 1.8) #### 概述 `ArrayList`是Java集合框架中的一个核心组件,它提供了动态数组的功能。与固定大小的数组不同,`ArrayList`可以随着元素的增加而自动扩展其容量。在JDK 1.8中,`...

    Java从JDK源码角度对Object进行实例分析

    "Java从JDK源码角度对Object进行实例分析" Java中的Object类是所有类的父类,也就是说Java中的所有类都是直接或者间接继承自Object类。Object类体现了面向对象编程(OOP)的四大特性:多态、继承、封装、抽象。...

    JDK之ThreadPoolExecutor源码分析1

    《JDK之ThreadPoolExecutor源码分析1》 在Java编程中,线程池是一种高效的管理线程的方式,它通过复用已存在的线程来避免频繁创建和销毁线程带来的开销。ThreadPoolExecutor作为Java中的线程池实现,其内部机制相当...

    ArrayList源码分析(含jdk1.8).pdf

    在了解ArrayList的源码分析时,我们主要探讨其在Java Development Kit (JDK) 1.8中的实现。ArrayList是一个非常重要的集合框架,用于动态数组的实现,其功能类似于数组,但可以在运行时动态调整大小。它是一个非线程...

    源码解析jdk7.0集合:HashSet的底层实现原理.pdf

    HashSet作为Java集合框架中一个重要的非同步集合实现,它在JDK 7.0中的底层实现原理是基于HashMap来存储和操作数据的。下面就详细介绍HashSet的实现原理。 首先,HashSet是Set接口的一个实现类,它用于存储唯一性的...

    在EditPlus中配置JDK编译JAVA的详细方法

    在“首选项”中选择“Java”(Java),在“JDK安装目录”(JDK Installation Directory)输入JDK的安装路径,这样EditPlus会自动使用该JDK的javac和java命令。 通过以上步骤,EditPlus将能够无缝地与JDK协同工作,提供...

    Java_jdk1.8.0_241 环境变量

    它们提供了关于Java SE 8的所有类、接口、方法和异常的详细信息,帮助开发者了解如何使用Java SDK的各种功能。 综上所述,正确设置Java JDK 1.8.0_241的环境变量是确保Java程序正常运行和开发的前提。理解并熟练...

    eclipse中使用maven创建项目JDK版本默认是1.5解决方法.docx

    在Eclipse中使用Maven创建项目时,你可能会遇到一个常见的问题,即默认的JDK版本被设置为较旧的1.5。这可能会导致一些现代Java特性无法使用,或者与你的开发环境不兼容。以下是解决这个问题的详细步骤: 首先,我们...

    Centos 7 jdk安装包

    在CentOS 7上安装JDK通常有两种方式:使用官方的RPM包或者通过源码编译。这里我们介绍使用RPM包的方法,因为这是最简便快捷的方式。 1. **添加Oracle JDK的YUM仓库**: Oracle JDK可以通过其官方的yum仓库进行安装...

Global site tag (gtag.js) - Google Analytics