一、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); }
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整