浅析Java中Data类的操纵[Java编程]
本文“浅析Java中Data类的操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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
以上是“浅析Java中Data类的操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |