JAVA学习第四十六课 — 其它对象API(二)Date类 amp; Calendar类(重点掌握)
Date类(重点)
开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.util.*;public class Main
{public static void main(String[] args){long l = System.currentTimeMillis();//1414079892981System.out.println(l);Date date = new Date();//当前时间System.out.println(date);Date date2 = new Date(1414079892981l);//将毫秒值封装成对象System.out.println(date2);}
}</strong></span>
日期对象和毫秒值之间的转换问题。
毫秒值->日期对象 :1.new Date(TimeMillis);2.setTime()
故:能够通过Date对象的方法对某年、月、日进行操作
日期对象->毫秒值 :getTime();
故:能够通过详细的数值进行运算,两个日期对象无法减,变成毫秒就能够减,得到相隔几天
Boolean after(Date when)
測试此日期是否在指定日期之后。
Boolean before(Date when)
測试此日期是否在指定日期之前。
Object clone()
返回此对象的副本。
int compareTo(Date anotherDate)
比較两个日期的顺序。
Boolean equals(Object obj)
比較两个日期的相等性。
把日期对象转成字符串。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main
{public static void main(String[] args){MethodDemo();}public static void MethodDemo(){//对日期对象格式化 转换成日期格式的字符串Date date = new Date();//获取日期对象,具备默认的风格DateFormat dateFormat = DateFormat.getDateInstance();//获取日期工厂String str_Date = dateFormat.format(date);System.out.println(str_Date);//2014-10-24DateFormat dateFormat2 = DateFormat.getDateTimeInstance();//获取日期加时间工厂String str_Date2 = dateFormat2.format(date);System.out.println(str_Date2);//2014-10-24 0:30:22//指定格式 FULL:2014年10月24日 星期五 LONG:2014年10月24日 SHORT:14-10-24DateFormat dateFormat3 = DateFormat.getDateInstance(dateFormat.FULL);//获取日期工厂String str_Date3 = dateFormat3.format(date);System.out.println(str_Date3);//2014年10月24日 星期五 上午12时39分27秒DateFormat dateFormat4 = DateFormat.getDateTimeInstance(dateFormat.FULL,dateFormat.LONG);String str_Date4 = dateFormat4.format(date);System.out.println(str_Date4);//自己定义风格 使用的是DateFormat类中的format方法。当中SimpleDateFormat是DateFormat的子类DateFormat dateFormat5 = new SimpleDateFormat("yyyy#MM#dd");String str_Date5 = dateFormat5.format(date);System.out.println(str_Date5);}
}</strong></span>
字符串转日期对象
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main
{public static void main(String[] args)throws ParseException{MethodDemo();}//字符串转Date对象 使用的是parse方法public static void MethodDemo() throws ParseException{//默认风格String str_date = "2014-10-24";DateFormat dateFormat = DateFormat.getDateInstance();Date date = dateFormat.parse(str_date);//抛异常System.out.println(date);//自己定义风格String str_date2 = "2014年10月24日";DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);Date date2 = dateFormat2.parse(str_date2);//抛异常System.out.println(date2);String str_date3 = "2014年--10月--24日";DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.LONG);dateFormat3 = new SimpleDateFormat("yyyy年--MM月--dd日");Date date3 = dateFormat3.parse(str_date3);//抛异常System.out.println(date3);}
}</strong></span>
Date类练习
2014-10-24 到 2012-12-25日有多少天
1.将字符串转成Date对象
2.将Date对象转成毫秒
3.相减得天数
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main
{public static void main(String[] args)throws ParseException{MethodDemo();}public static void MethodDemo() throws ParseException{String str1 = "2014-10-24";String str2 = "2012-12-25";Date date1 = new Date();Date date2 = new Date();DateFormat dateFormat1 = DateFormat.getDateInstance();dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");date1 = dateFormat1.parse(str1);date2 = dateFormat1.parse(str2);long time1 = date1.getTime();long time2 = date2.getTime();long time = Math.abs(time1 - time2);int day = Getday(time);System.out.println(day+"天");}public static int Getday(long time){return (int)(time/1000/60/60/24);}
}
Calendar类
public class Main
{public static void main(String[] args){MethodDemo();}public static void MethodDemo() {Calendar ca = Calendar.getInstance();int year = ca.get(Calendar.YEAR);int mon = ca.get(Calendar.MONTH)+1;//注意要+1,0代表一月int day = ca.get(Calendar.DAY_OF_MONTH);int week = ca.get(Calendar.DAY_OF_WEEK);//注意国外和我们不一样//2014-10-24-星期五System.out.println(year+"-"+mon+"-"+day+"-"+GetWeek(week));}private static String GetWeek(int i) {// TODO Auto-generated method stubString[] week = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};return week[i];}
}
练习:
import java.util.Calendar;public class Main
{public static void main(String[] args){int year = 2014;showyear(year);//推断某一年的二月有几天//showday();}private static void showyear(int year) {Calendar ca = Calendar.getInstance();ca.set(year,2,1);//设置某年3月1日时间ca.add(Calendar.DAY_OF_MONTH, -1);//3月的前一天MethodDemo(ca);}private static void showday() {Calendar ca = Calendar.getInstance();ca.set(2015,10,25);//设置2015.11.25时间ca.add(Calendar.DAY_OF_MONTH, -1);//时间偏移-》2013MethodDemo(ca);//2015-10-24-星期二ca.add(Calendar.DAY_OF_MONTH, 10);//超过会自己主动进一个月MethodDemo(ca);}public static void MethodDemo(Calendar ca) {int year = ca.get(Calendar.YEAR);int mon = ca.get(Calendar.MONTH)+1;int day = ca.get(Calendar.DAY_OF_MONTH);int week = ca.get(Calendar.DAY_OF_WEEK);int hour = ca.get(Calendar.HOUR);int minute = ca.get(Calendar.MINUTE);int second = ca.get(Calendar.SECOND);System.out.print(year+"-"+mon+"-"+day+"-"+GetWeek(week)+"-"+hour+":");if(minute>9){System.out.println(minute+":"+second);}else {System.out.println("0"+minute+":"+second);}}private static String GetWeek(int i) {String[] week = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};return week[i];}
}
JAVA学习第四十六课 — 其它对象API(二)Date类 amp; Calendar类(重点掌握)相关推荐
- NeHe OpenGL第四十六课:全屏反走样
NeHe OpenGL第四十六课:全屏反走样 全屏反走样 当今显卡的强大功能,你几乎什么都不用做,只需要在创建窗口的时候该一个数据.看看吧,驱动程序为你做完了一切. 在图形的绘制中,直线的走样是非 ...
- JavaScript学习(四十六)—练习题
JavaScript学习(四十六)-练习题 练习1 练习2
- 风炫安全Web安全学习第四十节课 反序列化漏洞攻击利用演示
风炫安全Web安全学习第四十节课 反序列化漏洞攻击利用演示 0x02 反序列化漏洞利用 反序列化漏洞的成因在于代码中的 unserialize() 接收的参数可控,从上面的例子看,这个函数的参数是一个 ...
- 风炫安全Web安全学习第四十三节课 路径遍历漏洞
风炫安全Web安全学习第四十三节课 路径遍历漏洞 路径遍历 0x01 漏洞概述 路径遍历攻击(也称作目录遍历)的目标是访问web根目录外存储的文件和目录.通过操纵使用"点-斜线(-/)&qu ...
- JavaScript学习(四十八)—原型对象的增删改查
JavaScript学习(四十八)-原型对象的增删改查 一.构造方法与原型对象的图解 二.型对象的增删改查 (一).什么是原型 每个函数都会有一个属性--prototype属性,这个属性都会有一个对象 ...
- java中的多态与继承_【Java学习笔记之十六】浅谈Java中的继承与多态
1. 什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
2019独角兽企业重金招聘Python工程师标准>>> 一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 pack ...
- Java学习笔记(十六)—— 开发个小项目(GoBang4.0)
接十二,今天重点搞定简单基础版本的AI下棋. 画个大纲(跟随慢慢开发过程不断完善) 1.用户 两个用户对战 一黑一白 用户可以是人,也可以是AI.对战模式支持人人,人机,机机. 属性 本次比赛执棋颜 ...
- JAVA学习笔记(四十九)- Swing相关组件
JFrame组件 import java.awt.Color;import javax.swing.JFrame; import javax.swing.JPanel;/** Swing是在AWT基础 ...
最新文章
- 通过单步调试的方式学习 Angular 中带有选择器的内容投影使用方式
- asp.net core监控—引入Prometheus(五)
- 串口服务器的通讯模式
- java蓝桥杯 试题-基础练习-数列排序
- 案例:使用正则表达式的爬虫
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xbd in position 198: illegal multibyte sequence
- windows和linux下读取文件乱码的终极解决办法!
- python求解LeetCode习题Intersection of Two Linked Lists
- 微型计算机控制技术第二版答案第四章,微型计算机控制技术答案第四章2.pdf
- 写给Python社群的第1课:初识Python,开篇知识点就选字符串吧~
- 声网 X 牛客网 200万场视频面试背后的实时互动技术支撑
- 05.Linux 常用命令-网络命令\关机重启命令
- CAN通信稳定性开发分析
- 掌上题库V1.2.2全开源版本
- 任总讲话,说明华为对5G有清醒的认识
- switch() 参数支持类型
- INS-20802 Windows安装Oracle19c报错解决方案
- 【数字信号处理】傅里叶变换
- XILINX K7 DDR3引脚验证总结
- 2020-12-03_EditPlus下载安装注册