java日期相关类实例详解

所属分类: 软件编程 / java 阅读数: 19
收藏 0 赞 0 分享

一、Date类

类 Date 表示特定的瞬间,精确到毫秒。用距离1970年1月1日00:00:00的毫秒数(long)类型来表示一个特定的时间点,该值可正可负。

Date类中很多方法已经过时,使用Calendar来替代。

常用方法有

long getTime()
void setTime(long time)

public class T01Date { 
  public static void main(String[] args) { 
    //getTime():返回的时间是距离1970年的毫秒数.值不受setTime()的影响 
    //date值受setTime()的影响 
    Date date=new Date(); 
    long current=date.getTime(); 
    System.out.println(current);//1472002479966 
    System.out.println(date);//Wed Aug 24 09:34:39 CST 2016 
    long time=current+1000*60*60*24;//时间设置为明日此时 
    date.setTime(time); 
    System.out.println(date.getTime());//1472002479966 
    System.out.println(current);//1472002479966 
    System.out.println(date);// Thu Aug 25 09:34:39 CST 2016 
  } 
} 

二、SimpleDateFormat

SimpleDateFormat根据特定的日期格式在Date和字符串之间转换

常用方法

String format(Date date):将日期按照指定格式转换成字符串
Date parse(String str):将字符串按照指定格式转换成Date

可以用来指定格式的字符

/** 
 * java.text.SimpleDateFormat 
 * 该类可以根据一个指定的日期格式将Date于String 
 * 之间相互转换 
 * @author zc 
 * 
 */ 
public class T02SimpleDateFormat { 
  public static void main(String[] args) throws ParseException { 
    Date now =new Date(); 
    //2016-08-12 09:55:23 
    //yyyy-MM-dd hh:ss:mm 
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh时ss分mm秒"); 
    String str = sdf.format(now); 
    System.out.println(str); 
    //a 居然能区分上下午汉字 
    String strDate="2012年12月20日下午12点20分30秒"; 
    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日ahh点ss分mm秒"); 
    Date date=sdf2.parse(strDate); 
    System.out.println(date); 
  } 
} 

三、Calendar

java.util.Calendar是抽象类,主要用来对时间分量进行计算。

常用方法

(1)Date和Calendar之间的转换

  //默认创建出来的Calendar的实现类表示当前系统时间 
    Calendar c=Calendar.getInstance(); 
    //将Calendar转换为Date 
    Date date=c.getTime(); 
    //Date->Calendar 
    /* 
     * void setTime(Date date) 
     * 该方法可以使当前Calendar表示给定的 
     * Date所表示的时间 
     * */ 
    c.setTime(date); 
  } 
} 

(2)getInstance()方法

Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()用来获取Calendar类型的实例

(3)get(int field)方法获取时间分量

import java.util.Calendar; 
/** 
 * Calendar提供了获取各个时间分量的值的方法 
 * @author zc 
 */ 
public class T05Calendar2 { 
  public static void main(String[] args) { 
    Calendar c=Calendar.getInstance(); 
    //获取年 
    int year=c.get(Calendar.YEAR); 
    System.out.println("year:"+year);//2016 
    //获取月:月从0开始!!!,0表示一月 
    int month=c.get(Calendar.MONTH); 
    System.out.println("month:"+month);//7 
    /* 
     * 和天相关的时间分量 
     * DATE,DAY_OF_MONTH:是一致的,表示月中的第几天 
     * DAY_OF_YEAR:表示年中的天 
     * DAY_OF_WEEK:表示周中的天 
     * 
     * */ 
    System.out.println(c.get(Calendar.DATE)); 
    System.out.println(c.get(Calendar.DAY_OF_MONTH)); 
    System.out.println(c.get(Calendar.DAY_OF_YEAR)); 
    System.out.println(c.get(Calendar.DAY_OF_WEEK)); 
    int dow=c.get(Calendar.DAY_OF_WEEK)-1; 
    String[] data={"日","一","二","三","四","五","六"}; 
    System.out.println("周"+data[dow]); 
    //获取小时,分钟,秒   HOUR_OF_DAY:24小时  HOUR:12小时  
    System.out.println(c.get(Calendar.HOUR_OF_DAY));//14 
    System.out.println(c.get(Calendar.HOUR));//2 
    System.out.println(c.get(Calendar.MINUTE)); 
    System.out.println(c.get(Calendar.SECOND)); 
  } 
} 

(4)set()方法设置时间分量

/** 
 * 设置时间分量 
 * @author zc 
 * 
 */ 
public class T06Calendar3 { 
  public static void main(String[] args){ 
    //表示2008-08-08 20:08:08 
    //设置年 
    Calendar c=Calendar.getInstance(); 
    c.set(Calendar.YEAR,2008); 
    //设置月,月从0开始 
    c.set(Calendar.MONTH,Calendar.AUGUST); 
    //设置日 
    c.set(Calendar.DATE, 8); 
    //设置时 
    c.set(Calendar.HOUR_OF_DAY,20); 
    //设置分 
    c.set(Calendar.SECOND,8); 
    //设置秒 
    c.set(Calendar.MINUTE,8); 
    System.out.println(c.getTime()); 
    //!!!设置的时间分量超出后,会自行进位 
  } 
} 

(5)add()方法在当前时间分量基础上修改时间分量

(6)getActualMaximum()获取某个时间分量所允许的最大值

/** 
 * 获取某个时间分量所允许的最大值 
 * @author zc 
 */ 
public class T07Calendar4 { 
  public static void main(String[] args) { 
    Calendar c=Calendar.getInstance(); 
    //查看当月共多少天 
    int days=c.getActualMaximum(Calendar.DAY_OF_MONTH); 
    System.out.println(days); 
    //查看今年多少天 
    int doy=c.getActualMaximum(Calendar.DAY_OF_YEAR); 
    System.out.println(doy); 
    int t=c.getActualMaximum(Calendar.MINUTE); 
    System.out.println(t); 
  } 
} 

四、Date、SimpleDateFormat和Calendar的一个综合实例

@Test 
  public void test01() throws ParseException{ 
    //要求用户输入一个日期,计算后,指定格式输出日期 
    /*String--SimpleDateFormat()-->Date 
    Date-->Calendar 
    使用Calendar进行相应计算 
    Calendar-->Date 
    Date--SimpleDateFormat-->String 
    */ 
    String input="2013-03-26"; 
     
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
    Date date=sdf.parse(input); 
    Calendar c=Calendar.getInstance(); 
    //set(),与add() 
    c.setTime(date); 
    c.add(Calendar.YEAR,1); 
    c.set(Calendar.MONTH,0); 
    c.set(Calendar.DAY_OF_WEEK,1); 
     
    date=c.getTime(); 
    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd分hh时ss分mm秒"); 
    String strTime=sdf2.format(date); 
    System.out.println(strTime); 
  } 

总结

以上就是本文关于java日期相关类实例详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java开发基础日期类代码详解Java编程实现时间和时间戳相互转换实例等,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

更多精彩内容其他人还在看

Java基础之反射原理与用法详解

这篇文章主要介绍了Java基础之反射原理与用法,结合实例形式详细分析了java反射的相关概念、原理、使用方法与操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

java字符串的截取方法substring()代码解析

这篇文章主要介绍了java字符串的截取方法substring()代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Mybatis一对多关联关系映射实现过程解析

这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java整数和字符串相互转化实例详解

这篇文章主要介绍了Java整数和字符串相互转化实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring Boot 项目设置网站图标的方法

这篇文章主要介绍了Spring Boot 项目设置网站图标的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java多态机制原理特点详解

在本篇文章里小编给大家分享的是关于java多态机制原理特点详解,有需要的朋友们可以跟着学习下。
收藏 0 赞 0 分享

Jmeter如何添加循环控制器

这篇文章主要介绍了Jmeter如何添加循环控制器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java虚拟机创建失败的原因整理

在本篇文章里小编给大家整理了关于创建java虚拟机失败的解决方法和知识点,需要的朋友们可以参考学习下。
收藏 0 赞 0 分享

Java如何把int类型转换成byte

这篇文章主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

linux中java获取路径的实例代码

在本篇文章里小编给大家整理的是一篇关于linux中java获取路径的实例代码以及相关知识点,有兴趣的朋友们可以学习参考下。
收藏 0 赞 0 分享
查看更多