科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件如何使用Java中的Date和Calendar类(2)

如何使用Java中的Date和Calendar类(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们写了两篇文章,这是第一篇,我们将大概的学习日期,日期格式,日期的解析和日期的计算。具体讨论下面的类:具体类(和抽象类相对)java.util.Date和Calendar类。

作者:天极网 来源:天极网 2007年9月3日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

使用标准的日期格式化过程

既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程。方法DateFormat.getDateTimeInstance()让我们得以用几种不同的方法获得标准的日期格式化过程。在下面的例子中,我们获取了四个内建的日期格式化过程。它们包括一个短的,中等的,长的,和完整的日期格式。

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。要知道获取时间和日期格式化过程的更多的方法和选项,请看Sun公司Web站点上的解释。

运行我们的例子程序的时候,它将向标准输出设备输出下面的内容:

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类。就如我们前面提到的那样,Calendar类中的方法替代了Date类中被人唾骂的方法。

假设你想要设置,获取,和操纵一个日期对象的各个部分,比方一个月的一天或者是一个星期的一天。为了演示这个过程,我们将使用具体的子类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()));

}

}

}

}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章