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();//1414079892981
System.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-24 DateFormat 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-24
DateFormat 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 stub
String[] 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);//时间偏移-》2013
MethodDemo(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类(重点掌握)的更多相关文章

  1. JAVA学习第四十五课 — 其它对象API(一)System、Runtime、Math类

    一.System类 1. static long currentTimeMillis() 返回以毫秒为单位的当前时间. 实际上:当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫 ...

  2. JAVA学习第四十八课 — IO流(二):文件的复制 &amp; 缓冲区1

    一.复制文本文件 将G盘的文本文件拷贝到D盘上 也就是 读取G盘中文本文件的数据.写入D盘中->连读带写 而剪切呢.就是连读带写后,删除原盘的文件 <span style="fo ...

  3. JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示

    随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...

  4. NeHe OpenGL教程 第四十六课:全屏反走样

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. Java学习笔记(十六)——Java RMI

    [前面的话] 最近过的好舒服,每天过的感觉很充实,一些生活和工作的技巧注意了就会发现,其实生活也是可以过的如此的有滋有味,满足现在的状况,并且感觉很幸福. 学习java RMI的原因是最近在使用dub ...

  6. JAVA学习第五十九课 — 网络编程概述

    网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...

  7. 【Java学习笔记之十六】浅谈Java中的继承与多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  8. javaweb学习总结(四十六)——Filter(过滤器)常见应用

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import ja ...

  9. salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态

    项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样. 以Goods__c表为例,申请者申请的一些采购以前需要 ...

随机推荐

  1. H5知识点

    一.总体变化 1.H5文档结构 <!DOCTYPE html> <html> <head> <title>  这是标题  </title> ...

  2. SQL SERVER-集合操作

    内连接      INNER JOIN(等值连接):只显示两个表中联结字段相等的行.这个和用select查询多表是一样的效果,所以很少用到:外连接:LEFT JOIN :以左表为基础,显示左表中的所有 ...

  3. Webstorm快捷键整理

    Webstorm快捷键整理 F2/Shift F2  下一个/上一个高亮错误 Ctrl+Shift+BackSpace 回到刚刚编辑的地方 Alt+Insert 新建文件,还有其他功能 Ctrl+D ...

  4. [CSS3] All abourt responsive image

    Take few examples: Full size image: The problem for that is it overflow when the screen size is smal ...

  5. Residual Networks &lt;2015 ICCV, ImageNet 图像分类Top1&gt;

    本文介绍一下2015 ImageNet中分类任务的冠军--MSRA何凯明团队的Residual Networks.实际上.MSRA是今年Imagenet的大赢家.不单在分类任务,MSRA还用resid ...

  6. legend---十一、thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里

    legend---十一.thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里 一.总结 一句话总结:执行的条件其 ...

  7. CxImage内存方式转换图像

    最近,处于项目需要,需要将Bmp转换为JPEG格式.以前做过,采用的是GDI+的方式,该方式有一个极大地缺陷为无法实现跨平台处理.闲话少说,进入正题. CxImage cxImageBmp(pRGBB ...

  8. Linux就该这么学 20181002(第二章基础命令)

    参考链接https://www.linuxprobe.com/ 忘记密码操作 启动页面 默认按e 在linux16行后空格 rd.break ctrl + x mount -o remount,rw ...

  9. Kettle的四大不同环境工具

    不多说,直接上干货! kettle里有不同工具,分别用于ETL的不同阶段. 初学者,建议送Spoon开始.高手,是四大工具都会用. Sqoop: 图形界面工具,快速设计和维护复杂的ETL工作流.集成开 ...

  10. (转载)Android之三种网络请求解析数据(最佳案例)

    [置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报  分类: Gson.Gson解析(1)  版权声明:本文为博主原创 ...