java 日期相关操作枚举

日期操作类:

1. Date,DateFormat, SimpleDateFormat,Calendar;
2. java.util.Date:最简单,系统提供;
———java.util.Date打印当前系统时间:

package com.mldn;

import java.util.Date;

public class DateTest

{

public static void main(String[] args)

{

System.out.println(new Date()); // 打印当前系统日期;

}

}

/*

administrator@xu-desktop:~$ java com.mldn.DateTest

Thu Mar 18 17:40:18 CST 2010

*/

使用Calendar类打印中国时间:
1.java.util.Calendar, 可以将时间精确到毫秒,
2

public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable;

  1. 是一个抽象类,实现了若干接口,其中有对Calendar的泛型接口;
    4. 子类:java.util.GregorinCalendar类;
    —–实例:

package com.mldn;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class CalendarTest

{

public static void main(String[] args)

{

Calendar calendar = new GregorianCalendar(); // 用子类对象实例化抽象类

System.out.println(calendar.get(Calendar.YEAR) + ” 年 “); // 输出年;

System.out.println((calendar.get(Calendar.MONTH)+1) + ” 月 ” ); // 输出月+1;

System.out.println(calendar.get(Calendar.DAY_OF_MONTH) + ” 日 “); // 输出日;

System.out.println(calendar.get(Calendar.HOUR_OF_DAY) + ” 时 “); // 输出时

System.out.println(calendar.get(Calendar.MINUTE) + ” 分 “); // 输出分

System.out.println(calendar.get(Calendar.SECOND) + ” 秒 “); // 输出秒

System.out.println(calendar.get(Calendar.MILLISECOND) + ” 毫秒 “); // 输出毫秒

}

}

/*

administrator@xu-desktop:~$ java com.mldn.CalendarTest

2010 年

3 月

18 日

18 时

9 分

36 秒

517 毫秒

*/

获取如下格式的时间:2009-03-12 13:36:09.456

package com.mldn;

import java.util.Calendar; // 抽象类

import java.util.GregorianCalendar; // Calendar的子类,非抽象

public class GetDateTime

{

public static void main(String[] args)

{

System.out.println(new DateTime().getDate()); // 格式:2010-03-20

System.out.println(new DateTime().getDateTime()); // 格式:2010-03-20 13:38:19.860

System.out.println(new DateTime().getDateComplete()); // 格式:2010年03月20日

System.out.println(new DateTime().getDateTimeComplete()); // 格式:2010年03月20日 13时47分43秒753毫秒

}

}

class DateTime

{

private Calendar calendar = new GregorianCalendar(); // 实例化Calendar对象

public String getDate()

{

StringBuffer str = new StringBuffer();

str.append(this.calendar.get(Calendar.YEAR)); // 年;

str.append(“-“);

str.append(this.addZero(this.calendar.get(Calendar.MONTH) + 1, 2)); // 月

str.append(“-“);

str.append(this.addZero(this.calendar.get(Calendar.DAY_OF_MONTH), 2)); // 日

return str.toString();

}

public String getDateTime()

{

StringBuffer str = new StringBuffer();

str.append(this.getDate());

str.append(” “).append(this.addZero(this.calendar.get(Calendar.HOUR_OF_DAY), 2)); // 时

str.append(“:”).append(this.addZero(this.calendar.get(Calendar.MINUTE), 2)); // 分

str.append(“:”).append(this.addZero(this.calendar.get(Calendar.SECOND), 2)); // 秒

str.append(“.”).append(this.addZero(this.calendar.get(Calendar.MILLISECOND), 3));

return str.toString();

}

public String getDateComplete()

{

StringBuffer str = new StringBuffer();

str.append(this.calendar.get(Calendar.YEAR)); // 年;

str.append(“年”);

str.append(this.addZero(this.calendar.get(Calendar.MONTH) + 1, 2)); // 月

str.append(“月”);

str.append(this.addZero(this.calendar.get(Calendar.DAY_OF_MONTH), 2)).append(“日”); // 日

return str.toString();

}

public String getDateTimeComplete()

{

StringBuffer str = new StringBuffer();

str.append(this.getDateComplete());

str.append(” “).append(this.addZero(this.calendar.get(Calendar.HOUR_OF_DAY), 2)); // 时,Calendar.HOUR:12h

str.append(“时”).append(this.addZero(this.calendar.get(Calendar.MINUTE), 2)); // 分

str.append(“分”).append(this.addZero(this.calendar.get(Calendar.SECOND), 2)); // 秒

str.append(“秒”).append(this.addZero(this.calendar.get(Calendar.MILLISECOND), 3)).append(“毫秒”);

return str.toString();

}

private String addZero(int temp, int len)

{

StringBuffer str = new StringBuffer();

str.append(temp); // 添加数字

if (str.length() < len)

{

str.insert(0, 0); // 数字不足,在起始位置插补0

}

return str.toString(); // 返回str字符串

}

}

/*

administrator@xu-desktop:~$ java com.mldn.GetDateTime

2010-03-20

2010-03-20 13:47:43.752

2010年03月20日

2010年03月20日 13时47分43秒753毫秒

*/

———时间日期格式化:
java.text.DateFormat,和MessageFormat一样是Format类的子类,可以按不同风格格式化系统时间;
java.text.SimpleDateFormat; // DateFormat抽象类的子类,非抽象类
java.util.Date本身表示的时间在格式上不理想,需要格式化;
DateFormat类中有方法:

public final String format(Date date);

可以把Date类型的时间格式化为String类型,表示日期风格;
DateFormat类是个抽象类,他的实例用其静态方法获取:

  1. public static final DateFormat getDateInstance();

// 获取默认日期风格的实例;

  1. public static final DateFormat getDateInstance(int style);

// 获取特定日期风格的实例

  1. public static final DateFormat getDateTimeInstance();

// 获取默认日期时间风格的实例

  1. public static final DateFormat getDateTimeInstance(int datestyle, int timestyle)

// 如上理解;
———– 按默认风格格式化本地系统时间:

package com.mldn;

import java.util.Date;

import java.text.DateFormat;

public class TimeFormat

{

public static void main(String[] args)

{

Date date = new Date();

DateFormat dateFormat = DateFormat.getDateInstance(); // 取得默认风格的实例

DateFormat dateTimeFormat = DateFormat.getDateTimeInstance();

System.out.println(“本地系统时间:” + date); // 本地系统时间

System.out.println(“默认风格转换:” + dateFormat.format(date)); // 按默认风格格式化日期

System.out.println(“默认风格转换:” + dateTimeFormat.format(date)); // 按默认风格格式化日期时间

}

}

/*]

administrator@xu-desktop:~$ java com.mldn.TimeFormat

本地系统时间:Sat Mar 20 14:25:17 CST 2010

默认风格转换:2010-3-20

默认风格转换:2010-3-20 14:25:17

将Date类型的本地风格按默认格式转换!

*/

——获取特定风格的日期时间:

package com.mldn;

import java.util.Date;

import java.text.DateFormat; // 抽象类

public class TimeFormat

{

public static void main(String[] args)

{

Date date = new Date();

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); // 获取特定风格实例

DateFormat dateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

System.out.println(“本地系统时间:” + date); // 本地系统时间

System.out.println(“特定风格转换:” + dateFormat.format(date)); // 特定风格格式化日期

System.out.println(“特定风格转换:” + dateTimeFormat.format(date)); // 特定风格格式化日期时间

}

}

/*]

administrator@xu-desktop:~$ java com.mldn.TimeFormat

本地系统时间:Sat Mar 20 14:47:02 CST 2010

特定风格转换:2010年3月20日 星期六 // 结果好像不太规范,3没有0

特定风格转换:2010年3月20日 星期六 下午02时47分02秒 CST

*/

———日期风格的转换:
DateFormat本身是抽象的,要借助其子类SimpleDateFormat进行风格的操作;
1.进行日期风格的转换;
2.取得指定格式的日期时间;

构造方法:

public SimpleDateFormat(String pattern); // 构造指定的风格,pattern表示风格模板;

提取日期方法:

public Date parse(String source) throws parseException // String –> Date

格式化:

public final String format(Date date); // 按风格格式化日期时间;

—————- 按自定义的格式转换日期时间:

package com.mldn;

import java.util.Date;

import java.text.SimpleDateFormat; // 子类

import java.text.ParseException; // 转换异常类

public class TimeFormat

{

public static void main(String[] args)

{

String timeStr = “2009-03-02 17:08:09.457”;

SimpleDateFormat oldStyle = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss.SSS”); // 定义旧风格

SimpleDateFormat newStyle = new SimpleDateFormat(“yyyy年MM月dd日hh时mm分ss秒SSS毫秒”); // 定义新风格

try // try块内的变量,在try块外无法访问!

{

Date date = oldStyle.parse(timeStr); // 按旧风格提取日期时间。。String –> Date

String str = newStyle.format(date); // 按自定义风格格式化Date对象

System.out.println(“自定义风格转换:” + str); // 打印自定义风格格式化的日期时间

}

catch (ParseException e)

{

e.printStackTrace();

}

}

}

/*]

administrator@xu-desktop:~$ java com.mldn.TimeFormat

自定义风格转换:2009年03月02日05时08分09秒457毫秒

风格模板的定义:是一个字符串, 年:y,月:M,日:d,时:h(12h)H(24h),分:m,秒:s,毫秒:S;

2009-03-20 03:39:32.457 — “yyyy-MM-dd hh:mm:ss.SSS”

*/

———接收用户输入的时间,并按风格输出:

package com.mldn;

import java.util.Date;

import java.text.SimpleDateFormat; // 子类

import java.text.ParseException; // 转换异常类

public class TimeFormat

{

public static void main(String[] args) // 空格可以作为main的参数的分隔符

{

try // try块内的变量,在try块外无法访问!

{

String timeStr = args[0] + ” ” + args[1]; // 接收参数,将接收用户输入,java.laArrayIndexOutOfBoundsException

// String timeStr = args[0]; // 要求:输入: “2009-03-30 12:22:32.555” ,别忘了引号!

SimpleDateFormat oldStyle = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss.SSS”); // 定义旧风格

SimpleDateFormat newStyle = new SimpleDateFormat(“yyyy年MM月dd日hh时mm分ss秒SSS毫秒”); // 定义新风格

Date date = oldStyle.parse(timeStr); // 按旧风格提取日期时间。。String –> Date java.text.ParseException

String str = newStyle.format(date); // 按自定义风格格式化Date对象

System.out.println(“原来的风格:” + date);

System.out.println(“自定义风格转换:” + str); // 打印自定义风格格式化的日期时间

}

catch (ArrayIndexOutOfBoundsException e)

{

e.printStackTrace();

System.out.println(“请输入时间参数!”);

}

catch (ParseException e)

{

e.printStackTrace();

System.out.println(“请输入按正确的风格输入时间!”);

}

}

}

/*

administrator@xu-desktop:~$ java com.mldn.TimeFormat

自定义风格转换:2009年03月02日05时08分09秒457毫秒

风格模板的定义:是一个字符串, 年:y,月:M,日:d,时:h(12h)H(24h),分:m,秒:s,毫秒:S;

2009-03-20 03:39:32.457 — “yyyy-MM-dd hh:mm:ss.SSS”

*/

———用SimpleDateFormat编写日期类:
/*
        @version 2009-03-20 16:31
        @author Xjinan
用SimpleDateFormat实现经典的日期类格式化操作!
*/

package com.mldn;

import java.util.Date;

import java.text.SimpleDateFormat;

public class DateTime

{

private SimpleDateFormat style= null;

public String getDate()

{

this.style = new SimpleDateFormat(“yyyy-MM-dd”); // 定义日期风格

String date = style.format(new Date()); // 按定义风格格式化当前系统时间

return date;

}

public String getDateTime()

{

this.style = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSS”); // 定义日期时间风格

String dateTime = style.format(new Date()); // 按定义风格格式化当前系统时间

return dateTime;

}

public String getDateComplete()

{

this.style = new SimpleDateFormat(“yyyy年MM月dd日”); // 定义日期风格

String date = style.format(new Date()); // 按定义风格格式化当前系统时间

return date;

}

public String getDateTimeComplete()

{

this.style = new SimpleDateFormat(“yyyy年MM月dd日HH时mm分ss秒SSS毫秒”); // 定义日期时间风格

String dateTime = style.format(new Date()); // 按定义风格格式化当前系统时间

return dateTime;

}

public String getDateTimeStamp()

{

this.style = new SimpleDateFormat(“yyyyMMddHHmmssSSS”); // 定义日期时间戳风格

String dateTimeStamp = style.format(new Date()); // 按定义风格格式化当前系统时间戳

return dateTimeStamp;

}

public static void main(String[] args)

{

System.out.println(new DateTime().getDate());

System.out.println(new DateTime().getDateTime());

System.out.println(new DateTime().getDateComplete());

System.out.println(new DateTime().getDateTimeComplete());

System.out.println(new DateTime().getDateTimeStamp());

}

}

/*

administrator@xu-desktop:~$ javac -d . work/DateTime.java

administrator@xu-desktop:~$ java com.mldn.DateTime

2010-03-20

2010-03-20 16:30:26.650

2010年03月20日

2010年03月20日16时30分26秒652毫秒

20100320163026653

*/

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《java 日期相关操作枚举
本文地址:http://www.xiupu.net/archives-183.html
关注公众号:嗅谱网

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!