您的位置:首页 > 编程语言 > Java开发

JAVA学习第四十六课 — 其他对象API(二)Date类 & Calendar类(重点掌握)

2014-10-24 02:00 639 查看
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];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: