浅析Java中Data类的应用

Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年。这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它。

  这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数。

  创建一个日期对象

  让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为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. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示.

  将文本数据解析成日期对象

  假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串"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());
  }
  }
  }

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

  既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法 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

(0)

相关推荐

  • java获取当前时间和前一天日期(实现代码)

    废话不多说,上代码 复制代码 代码如下: String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; Date dNow = new Date();   //当前时间Date dBefore = new Date(); Calendar calendar = Calendar.getInstanc

  • java时间戳转日期格式的实现代码

    如下所示: 复制代码 代码如下: String beginDate="1328007600000"; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String sd = sdf.format(new Date(Long.parseLong(beginDate))); System.out.println(sd);

  • 从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

    本文会介绍从一个最基本的java工程,到Web工程,到集成Spring.SpringMVC.SpringDataJPA+Hibernate. 平时我们可能是通过一个模板搭建一个工程,或者是直接导入一个项目,而本文选择从最基本的java工程开始,目的是为了展示更多原理. 当然,我们还是从一个最基本的Maven工程开始,其实普通的非Maven工程,搭建过程几乎是一模一样的,只是Jar包需要我们手动的添加到工程中,而Maven工程就只是修改配置文件即可. 下面就正式开始. 1.基于Maven(如果不使

  • 使用java的Calendar对象获得当前日期

    思路: 先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期 /** * @param flag true:开始日期:false:结束日期 * @return */ public static String getLastQuarterTime(boolean flag){ SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat longSdf

  • 学习Java的Date、Calendar日期操作

    本文介绍了Java开发过程中日期相关操作,分享的代码如下: package jse; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * 常用日期操作 * * @a

  • Java中的日期和时间类以及Calendar类用法详解

    Java日期和时间类简介 Java 的日期和时间类位于 java.util 包中.利用日期时间类提供的方法,可以获取当前的日期和时间,创建日期和时间参数,计算和比较时间. Date 类 Date 类是 Java 中的日期时间类,其构造方法比较多,下面是常用的两个: Date():使用当前的日期和时间初始化一个对象. Date(long millisec):从1970年01月01日00时(格林威治时间)开始以毫秒计算时间,计算 millisec 毫秒.如果运行 Java 程序的本地时区是北京时区(

  • Java中Calendar时间操作常用方法详解

    本文实例为大家分享了Calendar时间操作常用方法,具体内容如下 package test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Date和Calendar常用方法,Date很多方法已经弃用,因此以Calendar为主 * * @author tuzongxun123 * */ public class DateAndCalendarTest { p

  • Java程序执行时间的2种简单方法

    第一种是以毫秒为单位计算的.  Java代码  //伪代码   复制代码 代码如下: long startTime=System.currentTimeMillis();   //获取开始时间 doSomeThing();  //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms"); 第二种是以纳秒为单位计算的.

  • Java中Date类和Calendar类的常用实例小结

    前言 写后台程序的时候,经常需要存储当前服务器的时间戳,使用时间戳也很方便,客户端和服务器端都可以根据自己的需求做各自的转换 在php里,获取当前时间戳使用time()函数,格式化输出通过Date()函数即可,Java里相对复杂一些,这里简单介绍一下 Java语言中的Calendar,Date,DateFormat组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分,所有的开发者都应该能计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象 获取UNIX时间戳

  • Java中Date,Calendar,Timestamp的区别以及相互转换与使用

    1 Java.util.Date包含年.月.日.时.分.秒信息. 复制代码 代码如下: // String转换为DateString dateStr="2013-8-13 23:23:23";String pattern="yyyy-MM-dd HH:mm:ss";DateFormate dateFormat=new SimpleDateFormat(pattern);Date date=dateFormat.parse(dateStr);date=dateForm

随机推荐