- 浏览: 236296 次
- 性别:
最新评论
-
nechiy:
maidongdong 写道请教一下:1.不能全是数学和特殊字 ...
正则表达式(必须包含字母.数字和特殊字符) -
nechiy:
bruce,你的解决方法让我眼前一亮,最起码思维方式值得眼前一 ...
正则表达式(必须包含字母.数字和特殊字符) -
zgcy123456:
...
Calendar获取时间的月和日 -
zgcy123456:
谢谢了,lz,:idea:
Calendar获取时间的月和日 -
yan0133:
这个显然不对了,老兄你有没有试验过,随便写个纯字母的就通过了
正则表达式(必须包含字母.数字和特殊字符)
Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。
创建一个日期对象
让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数。这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间。
- import java.util.Date;
- public class DateExample1 {
- public static void main(String[] args) {
- // Get the system date/time
- Date date = new Date();
- System.out.println(date.getTime());
- }
- }
在星期六,2001年9月29日,下午大约是6:50的样子,上面的例子在系统输出设备上显示的结果是 1001803809710。值得注意的是我们使用了Date 构造函数创建一个日期对象,这个构造函数没有接受任何参数,而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了。我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了。
日期数据的定制格式
假如我们希望定制日期数据的格式,比方星期六-9月-29日-2001年. 下面的例子展示了如何完成这个工作:
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class DateExample2 {
- public static void main(String[] args) {
- SimpleDateFormat bartDateFormat = new SimpleDateFormat(
- "EEEE-MMMM-dd-yyyy");
- Date date = new Date();
- System.out.println(bartDateFormat.format(date));
- }
- }
只要通过向SimpleDateFormat 的构造函数传递格式字符串"EEE-MMMM-dd-yyyy",我们就能够指明自己想要的格式。格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。EEEE是星期,MMMM是月,dd是日,yyyy是年。字符的个数决定了日期是如何格式化的。传递"EE-MM-dd-yy"会显示 Sat-09-29-01。
将文本数据解析成日期对象
假设我们有一个文本字符串包含了一个格式化了的日期对象,我们希望解析这个字符串并从文本日期数据创建一个日期对象。我们将再次以格式化字符串"MM-dd-yyyy" 调用SimpleDateFormat类。但是这一次,我们使用格式化解析而不是生成一个文本日期数据。我们的例子,显示在下面,将解析文本字符串"9-29-2001"并创建一个值为001736000000 的日期对象。
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class DateExample3 {
- public static void main(String[] args) {
- // Create a date formatter that can parse dates of
- // the form MM-dd-yyyy.
- SimpleDateFormat bartDateFormat = new SimpleDateFormat("MM-dd-yyyy");
- // Create a string containing a text date to be parsed.
- String dateStringToParse = "9-29-2001";
- try {
- // Parse the text version of the date.
- // We have to perform the parse method in a
- // try-catch construct in case dateStringToParse
- // does not contain a date in the format we are expecting.
- Date date = bartDateFormat.parse(dateStringToParse);
- // Now send the parsed date as a long value
- // to the system output.
- System.out.println(date.getTime());
- }
- catch (Exception ex) {
- System.out.println(ex.getMessage());
- }
- }
- }
使用标准的日期格式化过程
- import java.text.DateFormat;
- import java.util.Date;
- public class DateExample4 {
- public static void main(String[] args) {
- Date date = new Date();
- DateFormat shortDateFormat = DateFormat.getDateTimeInstance(
- DateFormat.SHORT, DateFormat.SHORT);
- DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(
- DateFormat.MEDIUM, DateFormat.MEDIUM);
- DateFormat longDateFormat = DateFormat.getDateTimeInstance(
- DateFormat.LONG, DateFormat.LONG);
- DateFormat fullDateFormat = DateFormat.getDateTimeInstance(
- DateFormat.FULL, DateFormat.FULL);
- System.out.println(shortDateFormat.format(date));
- System.out.println(mediumDateFormat.format(date));
- System.out.println(longDateFormat.format(date));
- System.out.println(fullDateFormat.format(date));
- }
- }
注意我们在对 getDateTimeInstance的每次调用中都传递了两个值:第一个参数是日期风格,而第二个参数是时间风格。它们都是基本数据类型int(整型)。考虑到可读性,我们使用了DateFormat 类提供的常量: SHORT,MEDIUM,LONG,和 FULL。
运行我们的例子程序的时候,它将向标准输出设备输出下面的内容:
9/29/01 8:44 PM
Sep 29,2001 8:44:45 PM
September 29,2001 8:44:45 PM EDT
Saturday,September 29,2001 8:44:45 PM EDT
Calendar 类
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
假设你想要设置,获取,和操纵一个日期对象的各个部分,比方一个月的一天或者是一个星期的一天,为了演示这个过程,我们将使用具体的子类 java.util.GregorianCalendar。 考虑下面的例子,它计算得到下面的第十个星期五是13号。
- import java.util.GregorianCalendar;
- import java.util.Date;
- import java.text.DateFormat;
- public class DateExample5 {
- public static void main(String[] args) {
- DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
- // Create our Gregorian Calendar.
- GregorianCalendar cal = new GregorianCalendar();
- // Set the date and time of our calendar
- // to the system´s date and time
- cal.setTime(new Date());
- System.out.println("System Date: " + dateFormat.format(cal.getTime()));
- // Set the day of week to FRIDAY
- cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
- System.out.println("After Setting Day of Week to Friday: "
- + dateFormat.format(cal.getTime()));
- int friday13Counter = 0;
- while (friday13Counter <= 10) {
- // Go to the next Friday by adding 7 days.
- cal.add(GregorianCalendar.DAY_OF_MONTH,7);
- // If the day of month is 13 we have
- // another Friday the 13th.
- if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13) {
- friday13Counter++;
- System.out.println(dateFormat.format(cal.getTime()));
- }
- }
- }
- }
在这个例子中我们作了有趣的函数调用:
cal.set(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.FRIDAY);
和:cal.add(GregorianCalendar.DAY_OF_MONTH,7);
set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五。注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性。add 方法让我们能够在日期上加上数值,润年的所有复杂的计算都由这个方法自动处理。
我们这个例子的输出结果是:
System Date: Saturday,September 29,2001
当我们将它设置成星期五以后就成了:
Friday,September 28,2001
Friday,September 13,2002
Friday,December 13,2002
Friday,June 13,2003
Friday,February 13,2004
Friday,August 13,2004
Friday,May 13,2005
Friday,January 13,2006
Friday,October 13,2006
Friday,April 13,2007
Friday,July 13,2007
Friday,June 13,2008
时间掌握在你的手里
有了这些Date 和Calendar 类的例子,你应该能够使用 java.util.Date,java.text.SimpleDateFormat,和 java.util.GregorianCalendar 创建许多方法了。
既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程。方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程。下面是我们获取了四个内建的日期格式化过程。它们包括一个短的,中等的,长的,和完整的日期格式。
发表评论
-
数字金额转大写
2011-03-13 02:57 1820public class ConverChMoney ... -
读取资源文件
2008-07-16 16:14 1221package mainTest; import jav ... -
java正则表达式应用举例
2008-01-17 10:06 1880/** * @author 作者 Bruce * @v ... -
Cookie 操作
2007-09-17 10:37 2972Cookie是当你浏 ... -
Eclipse中设置在创建新类时自动生成注释
2007-08-23 14:15 1574windows-->preference Java--& ... -
关于serialVersionUID
2007-08-02 17:26 1588Eclipse到3.1及以后的版本,在类中要加上:privat ... -
Document对象详解 (JS)
2007-07-02 11:12 2106Document对象详解 document ... -
(转)JUnit实战篇 (二) 续
2007-06-12 16:43 1423JUnit最佳实践 <o:p></o:p&g ... -
(转)JUnit实战篇 (二)
2007-06-12 16:35 1572... -
(转)JUnit实战篇 (一)
2007-06-12 16:25 1277出处:http://blog.csdn.net/k ... -
Srping读书笔记
2007-06-12 13:26 1573术语: IoC(Inversion of Co ... -
javaScript:Escape()
2007-06-07 17:09 2037escape 返回以 ISO-Latin-1 字符集书写的参数 ... -
tbody的解释及用法
2007-06-06 14:21 1914写html代码的时候,遇到了Tbody这个 ... -
Calendar获取时间的月和日
2007-06-05 11:14 18493开始使用new Date()测试,并用通过da ... -
JAVA中获得本地系统时间的方法
2007-06-05 10:59 7099import java.util.*; ... -
JAVA Calendar详解
2007-06-05 10:54 19356(在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最 ... -
java中的时间操作
2007-06-05 10:41 3102java中的时间操作不外乎这四种情况: 1、获取当前时间 2、 ... -
文件的压缩和解压
2007-06-01 15:06 1377java 代码 //文件名:myZip.jav ... -
JAVA中用接口实现多继承和多态的方法
2007-06-01 15:01 18701.JAVA里没有多继承,一个类之能有一个父类。而继承的表现就 ... -
Ajax应用场景
2007-06-01 12:48 1194适用场景 ...
相关推荐
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...
在Java编程语言中,`Calendar`和`Date`类是处理日期和时间的核心组件。这两个类在处理日期、时间计算以及格式化等任务时扮演着关键角色。理解并熟练运用它们,对于提升Java开发能力至关重要。 `Date`类是Java早期...
在Java编程语言中,`Calendar`和`Date`是处理日期和时间的重要类。为了更好地理解和使用这两个类之间的转换方法,本文将详细介绍如何将`Calendar`对象转换为`Date`对象,以及如何将`Date`对象转换为`Calendar`对象。...
在Java编程语言中,`Calendar`和`Date`类是用于处理日期和时间的核心类。它们在处理日期和时间操作时扮演着重要角色。这里我们将深入探讨这两个类以及它们之间的对比,同时展示如何计算上月某一天的日期以及获取指定...
`java.util.Date`和`java.util.Calendar`是两个核心的类,用于表示和操作日期。尽管`Date`类提供了许多功能,但它的某些方法如`getYear()`、`getMonth()`等在后续版本中被废弃,取而代之的是使用`Calendar`类来进行...
在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的用法和功能,对于理解并正确使用它们是Java开发者必备的知识点。 `Date`类在早期的Java版本中被广泛使用...
JavaCalendar是Java编程语言中用于处理日期和时间的重要类,它是`java.util.Calendar`的实现。这个源码分析将深入探讨Java中日期和时间的管理,以及如何利用`Calendar`类进行相关的操作。 首先,`Calendar`类是抽象...
在这个"JAVA System、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...
Java-Date 类的学习总结 Date 类是 Java 语言中用于处理日期和时间的类别,在实际开发中经常会用到。...Date 类和 Calendar 类是 Java 语言中处理日期和时间的核心类别,了解它们的使用方法和特性是非常重要的。
在Java编程语言中,`Calendar`类是一个核心的日期和时间API,它用于处理各种日历系统,而不仅仅是常见的格里高利历(Gregorian Calendar)。`Calendar`是一个抽象类,这意味着它不能直接被实例化,但是提供了`...
Java Date 类是 Java 语言中用于处理日期和时间的类,可以用来计算某一月份的最大天数、将字符串转化为日期、格式化输出日期时间等。本文将对 Java Date 类的常用方法进行总结。 1. 计算某一月份的最大天数 使用 ...
在Java编程语言中,`Calendar`类是处理日期和时间的核心工具之一,它提供了一种可以操作日期和时间字段(如年、月、日、时、分、秒等)的灵活方式。`Calendar`类是抽象的,因此我们通常通过其子类如`...
`Calendar`类还提供了`getTimeMillis()`方法,它返回当前日期和时间的毫秒值,这对于与Java的`Date`类交互非常有用。同时,`add`方法允许你根据日历规则增加或减少某个字段的值,比如增加一个月或一天。 比较时间...
标签"java"表明这个项目是使用Java语言编写的,这意味着我们将看到标准的Java语法,包括类定义、对象实例化、方法调用等。对于初学者,通过阅读和理解这段代码,可以深入理解Java的面向对象编程思想,以及如何处理...
- **Date/Calendar类**:教授如何处理日期和时间。 #### 九、异常处理 - **异常处理机制**:解释Java中异常处理的基本原理。 - **try-catch-finally结构**:演示如何使用try-catch-finally结构来捕获和处理异常。 -...
Java时间类Date类和Calendar类是Java语言中用来处理日期和时间的两个重要类。它们提供了许多有用的方法来获取和操作日期和时间。 Date类 Date类是Java语言中最基本的日期和时间类。它提供了多种方法来获取和操作...
Java 语言程序设计基础课后复习题答案第十三章 ...Java 语言程序设计基础课后复习题答案第十三章涵盖了 Java 语言的基础知识、对象和类、多态、接口、异常处理、日期和时间、compareTo 方法和 clone 方法等重要知识点。
在Java编程语言中,`Calendar`类是用于处理日期和时间的核心类之一。这个`基于Java的Calendar万年历.zip`文件很可能包含了一个示例项目,演示如何利用`Calendar`类构建一个显示从公元前到公元后数千年日期的万年历。...
在Java编程语言中,`Date`类是处理时间的基础组件,而`Calendar`类则提供了更高级的时间操作功能。这两个类在MyEclipse环境中经常被用于进行日期和时间的计算与管理。以下是对这两个类的详细说明以及如何在MyEclipse...
系统总结了 1.Date类 2.Calendar类 3.Math类与Biglnteger类 4.LinkedList泛型类 5.HashSet泛型类 6.HashMap,V>泛型类 7.TreeSet泛型类 8.TreeMap,V>泛型类 9.Stack泛型类 等方面的含义用法和范例。。。