- 浏览: 260019 次
文章分类
最新评论
-
yilisha_andrea:
不在意那么多,然后用的<button>然后点击后 ...
解析<button>和<input type="button"> 的区别 -
szh_java:
很久很久之前看过楼主的这篇文章,当时不知道什么感觉,现在感觉挺 ...
两年外包女程序员的真实感受 -
dabing69221:
珍爱生命 ,远离外包
两年外包女程序员的真实感受 -
dabing69221:
在华为做一年外包的苦逼程序员飘过,你所说的感同身受, 往事历历 ...
两年外包女程序员的真实感受 -
beating011:
请问你有TimesTen6.0的安装程序么,linux的安装 ...
oracle 内存数据库 TimesTen试用笔记(aix5.3)
Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。
创建一个日期对象
让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数,这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间。
import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); System.out.println(date); // Fri Mar 02 22:38:41 CST 2012 System.out.println(date.getTime()); // 1330699121772 } } 在星期五,2012年3月2日,下午大约是22:38:41的样子,上面的例子在系统输出设备上显示的结果是 1330699121772。值得注意的是我们使用了Date 构造函数创建一个日期对象,这个构造函数没有接受任何参数,而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了。我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了。 日期数据的定制格式 假如我们希望定制日期数据的格式,比方星期五-3月-02日-2012年. 下面的例子展示了如何完成这个工作: [java] view plaincopyprint? import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy"); System.out.println(dateFormat.format(date)); // Friday-March-02-2012 } }只要通过向SimpleDateFormat 的构造函数传递格式字符串"EEE-MMMM-dd-yyyy",我们就能够指明自己想要的格式。格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。EEEE是星期,MMMM是月,dd是日,yyyy是年,字符的个数决定了日期是如何格式化的。传递"EE-MM-dd-yy"会显示 Friday-March-02-2012。
将文本数据解析成日期对象
假设我们有一个文本字符串包含了一个格式化了的日期对象,我们希望解析这个字符串并从文本日期数据创建一个日期对象。我们将再次以格式化字符串"MM-dd-yyyy" 调用SimpleDateFormat类。但是这一次,我们使用格式化解析而不是生成一个文本日期数据。我们的例子显示在下面,将解析文本字符串"3-02-2012"并创建一个值为1330617600000 的日期对象。
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); String txtDate = "3-02-2012"; try { Date date = dateFormat.parse(txtDate); System.out.println(date.getTime()); // 1330617600000 System.out.println(dateFormat.format(date)); // 03-02-2012 } catch (Exception e) { System.out.println(e.getMessage()); } } }使用标准的日期格式化过程
既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程。方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程。下面是我们获取了六个内建的日期格式化过程。它们包括一个空,默认,短的,中等的,长的,完整的日期格式。
[java] view plaincopyprint? import java.text.DateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { String strDate = null; Date date = new Date(); System.out.println(date); // Fri Mar 02 21:43:55 CST 2012 strDate = DateFormat.getDateInstance().format(date); System.out.println(strDate); // Mar 2, 2012 // Date strDate = DateFormat.getDateInstance(DateFormat.DEFAULT).format(date); System.out.println(strDate); // Mar 2, 2012 strDate = DateFormat.getDateInstance(DateFormat.SHORT).format(date); System.out.println(strDate); // 3/2/12 strDate = DateFormat.getDateInstance(DateFormat.MEDIUM).format(date); System.out.println(strDate); // Mar 2, 2012 strDate = DateFormat.getDateInstance(DateFormat.LONG).format(date); System.out.println(strDate); // March 2, 2012 strDate = DateFormat.getDateInstance(DateFormat.FULL).format(date); System.out.println(strDate); // Friday, March 2, 2012 // DateTime strDate = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT).format(date); System.out.println(strDate); // Mar 2, 2012 11:06:36 PM strDate = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date); System.out.println(strDate); // 3/2/12 11:06 PM strDate = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(date); System.out.println(strDate); // Mar 2, 2012 11:06:36 PM strDate = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date); System.out.println(strDate); // March 2, 2012 11:06:36 PM CST strDate = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(date); System.out.println(strDate); // Friday, March 2, 2012 11:06:36 PM CST } }运行结果:
Fri Mar 02 23:06:36 CST 2012
Mar 2, 2012
Mar 2, 2012 11:06:36 PM
3/2/12 11:06 PM
Mar 2, 2012 11:06:36 PM
March 2, 2012 11:06:36 PM CST
Friday, March 2, 2012 11:06:36 PM CST
Mar 2, 2012
3/2/12
Mar 2, 2012
March 2, 2012
Friday, March 2, 2012
注意我们在对 getDateTimeInstance的每次调用中都传递了两个值:第一个参数是日期风格,而第二个参数是时间风格。它们都是基本数据类型int(整型)。考虑到可读性,我们使用了DateFormat 类提供的常量: DEFAULT,SHORT,MEDIUM,LONG, FULL。
Calendar 类
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
假设你想要设置,获取,操纵一个日期对象的各个部分,比方一个月的一天或者是一个星期的一天,为了演示这个过程,我们将使用具体的子类 java.util.GregorianCalendar。 考虑下面的例子,它计算得到下面的第十个星期五是13号。
import java.text.DateFormat; import java.util.Date; import java.util.GregorianCalendar; public class CalendarTest { public static void main(String[] args) { Date date = new Date(); DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(date); System.out.println("System Date: " + calendar.getTime()); calendar.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY); System.out.println("Day of Week to Friday: \n" + dateFormat.format(calendar.getTime())); int friday13Counter = 0; while(friday13Counter <= 10) { calendar.add(GregorianCalendar.DAY_OF_MONTH, 7); if(calendar.get(GregorianCalendar.DAY_OF_MONTH) == 13) { friday13Counter++; System.out.println(dateFormat.format(calendar.getTime())); } } } }运行结果:
System Date: Fri Mar 02 23:37:01 CST 2012
Day of Week to Friday:
Friday, March 2, 2012
Friday, April 13, 2012
Friday, July 13, 2012
Friday, September 13, 2013
Friday, December 13, 2013
Friday, June 13, 2014
Friday, February 13, 2015
Friday, March 13, 2015
Friday, November 13, 2015
Friday, May 13, 2016
Friday, January 13, 2017
Friday, October 13, 2017
在这个例子中我们作了有趣的函数调用:
calendar.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY) 和 calendar.add(GregorianCalendar.DAY_OF_MONTH, 7)
set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五。注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性。
add 方法让我们能够在日期上加上数值,润年的所有复杂的计算都由这个方法自动处理。
我们这个例子的输出结果是:
System Date: Fri Mar 02 23:33:19 CST 2012
当我们将它设置成星期五以后就成了:
Day of Week to Friday:
Friday, March 2, 2012
Friday, April 13, 2012
Friday, July 13, 2012
Friday, September 13, 2013
Friday, December 13, 2013
Friday, June 13, 2014
Friday, February 13, 2015
Friday, March 13, 2015
Friday, November 13, 2015
Friday, May 13, 2016
Friday, January 13, 2017
Friday, October 13, 2017
时间掌握在你的手里
发表评论
-
解析<button>和<input type="button"> 的区别
2012-06-15 00:01 57274一、定义和用法 <button> 标签定义 ... -
提交方法:post和get比较
2012-06-11 00:27 13922我们知道,从一个页面转向另一个页面的请求方式有两种,那 ... -
Servlet学习的小总结
2012-05-08 23:02 42431,什么是Servlet 2,Servlet有什么作用 ... -
Java 之 Array 数组
2012-04-23 22:06 1111Java反射技术除了可以在运行时动态地决定要创建什么类型的对象 ... -
Java 之 String 类型
2012-04-23 22:05 10991. String是一个对象 因为对象的默认值是null,所以 ... -
Java 基本数据类型 sizeof 功能
2012-04-23 22:05 1093Java基本数据类型int 32bitshor ... -
Java Date 和 Calendar 实例
2012-04-23 22:01 1103Java 之 Date 和 Calendar 实例 [ ... -
s5pc110 uboot
2012-04-22 14:53 15041.No MBR错误 如果提示如下错误:Error: ... -
Centos5.4 消息队列rabbitmq的安装及使用
2012-04-22 14:52 1502消息队列的使用能使一些操作异步化,从而能更快的响应用户 ... -
Oracle 在 2011 年取得的 Java 主要成就
2012-04-17 23:54 1521甲骨文公司继续推动 Java 前进的战略。自2010年1 ... -
java如何对Oracle中数据进行备份
2012-04-17 23:52 1443背景:在删除大量数据前,对这些数据进行备份 ... -
JAVA读取Oracle中的blob图片字段并显示
2012-04-17 23:51 2609近期,在给客户做一个Demo页面时,需要用JAVA读取O ... -
Java Build工具Ant与Maven之比较
2012-04-15 23:42 1538没有一件东西能满足你的全部想法除非你自己创造一个出来。同 ... -
Ajax实现简单用户名重名查询
2012-04-15 23:38 2244很早就想发布这篇POST ... -
一个支持chrome、firefox的全屏插件
2012-04-15 23:37 2007插件代码 (function(){ var fu ... -
js操作checkbox
2012-04-15 23:36 1110遇到操作checkbox的问题全选$("input[ ...
相关推荐
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...
Java中的时间类`Date`和`Calendar`是处理日期和时间的核心组件,它们在Java编程中扮演着重要的角色。在Java中,`Date`类主要用来表示特定的瞬间,精确到毫秒。而`Calendar`类则是一个抽象类,提供了比`Date`更灵活的...
Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的用法和功能,对于理解并正确使用它们是Java开发者必备的知识点。 `Date`类在早期的Java版本中被广泛使用...
关于java中date和Calendar日期处理小结,包含一些常用方法等
在Java编程语言中,`Calendar`和`Date`类是处理日期和时间的核心组件。这两个类在处理日期、时间计算以及格式化等任务时扮演着关键角色。理解并熟练运用它们,对于提升Java开发能力至关重要。 `Date`类是Java早期...
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。使用Date类的默认构造方法创建出的...
`java.util.Date`和`java.util.Calendar`是两个核心的类,用于表示和操作日期。尽管`Date`类提供了许多功能,但它的某些方法如`getYear()`、`getMonth()`等在后续版本中被废弃,取而代之的是使用`Calendar`类来进行...
在Java编程中,`new Date()` 和 `Calendar.getInstance().getTime()` 都是获取当前系统时间的方法,但有时可能会出现获取到的时间与预期不符的情况。这种问题通常与时区设置、系统时间、Java运行环境以及代码逻辑...
Java中的Date和Calendar类是处理日期和时间的核心工具。这两个类在Java编程中扮演着重要角色,特别是在处理日期计算、格式化以及与数据库交互时。 1. **java.util.Date** - **字符串转时间为Date对象**: 通过`...
`java.util.Calendar`是Java中用于操作日期和时间的抽象类,提供了比`Date`类更全面的日期和时间操作能力,包括时区支持、日历字段的访问以及日期的加减运算等。 ##### 使用Calendar `Calendar`类是抽象的,不能...
### Calendar和Date的转化 在Java编程语言中,`Calendar`和`Date`是处理日期和时间的重要类。为了更好地理解和使用这两个类之间的转换方法,本文将详细介绍如何将`Calendar`对象转换为`Date`对象,以及如何将`Date`...
在Java编程中,Date、String和Calendar是三个重要的日期时间处理类,它们之间相互转换的技巧是开发者必备的知识。理解并熟练掌握这三者之间的转换,对于处理日常的日期时间问题至关重要。 首先,我们来看`Date`类。...
Java_Date_日期时间整理 Java 中的日期时间处理是非常重要的,以下是 Java 中日期时间整理的知识点总结: ...通过上述知识点,我们可以看到 Java 中日期时间处理的多样性和灵活性,可以满足不同的应用场景需求。
在这个"JAVA System、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...
在Java编程语言中,`Calendar`和`Date`类是用于处理日期和时间的核心类。它们在处理日期和时间操作时扮演着重要角色。这里我们将深入探讨这两个类以及它们之间的对比,同时展示如何计算上月某一天的日期以及获取指定...
然而,在实际开发中,`java.util.Date`往往与`java.text.SimpleDateFormat`一起使用来格式化和解析日期。 ### SimpleDateFormat 类的使用 `SimpleDateFormat`是`DateFormat`的一个子类,用于格式化或解析日期。它...
JavaCalendar是Java编程语言中用于处理日期和时间的重要类,它是`java.util.Calendar`的实现。这个源码分析将深入探讨Java中日期和时间的管理,以及如何利用`Calendar`类进行相关的操作。 首先,`Calendar`类是抽象...
在Java中处理日期和时间非常常见,而`java.util.Calendar`类则是进行此类操作的核心工具之一。`Calendar`类提供了一系列的功能来帮助开发者处理复杂的日期计算问题,比如日期的加减、获取特定日期组件等。 #### 二...
然而,为了更好地理解和解答题目中的需求,我们可以围绕“Date的Java源代码”这一主题来展开相关的知识点。 ### 1. Java Date 类的基本概念 在Java中,`java.util.Date`类用来表示特定的时间点,即毫秒值距离1970...