Calendar类:
Calendar类为抽象类,创建对象并非直接创建,而是通过静态方法创建。
西方星期的开始为周日,中国为周一。在Calendar类中,月份的表示是以0-11代表1-12月(设置month需要-1)。日期是有大小关系的,时间靠后,时间越大
重要的字段摘要:
static int |
DATE get 和 set 的字段数字,指示一个月中的某天。 |
static int |
DAY_OF_WEEK get 和 set 的字段数字,指示一个星期中的某天。 |
static int |
MILLISECOND get 和 set 的字段数字,指示一秒中的毫秒。 |
static int |
MINUTE
get 和 set 的字段数字,指示一小时中的分钟。 |
构造方法:
protected |
Calendar() 构造一个带有默认时区和语言环境的 Calendar。 |
protected
|
Calendar(TimeZone zone, Locale aLocale)
构造一个带有指定时区和语言环境的 Calendar。 |
静态方法:
Calendar
提供了一个类方法 getInstance
,以获得此类型的一个通用的对象。Calendar
的 getInstance
方法返回一个 Calendar
对象。
获取日历类对象
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.DATE));
常用方法:
c.add(Calendar.DATE, 2);
System.out.println(c.get(Calendar.DATE)); 返回给定日历字段的值
调用
get(c);
将日历类对象转为日期类对象
Date d=c.getTime();
System.out.println(d);
给日类类对象设置指定时间
c.set(2008, 8-1, 8);
get(c);
获取字段
public static void get(Calendar c) {
获取年份
int year = c.get(Calendar.YEAR);
获取月份
int month = c.get(Calendar.MONTH)+1;
获取日
int day = c.get(Calendar.DATE);
获取小时
int hour = c.get(Calendar.HOUR);
获取分
int min = c.get(Calendar.MINUTE);
获取秒
int sec = c.get(Calendar.SECOND);
获取星期
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println("今天是" + year + "年" + month + "月" + day + "日" + hour + ":" + min + ":" + sec + "星期" + week);
YEAR 年,MONTH 月,从0开始算起,最大11;0代表1月,11代表12月, DATE 天, HOUR 时, MINUTE分, SECOND秒。
练习:
package com.oracle.demo01;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
public class Zuoye1 {
public static void main(String[] args) throws ParseException {
//求出自己出生了多少天
Calendar now=Calendar.getInstance();//现在的日期
Calendar birthday=Calendar.getInstance();
birthday.set(1995, 07, 06);//你的出生日期
Long times=now.getTimeInMillis()- birthday.getTimeInMillis();//二者之间相差的毫秒数
System.out.println("天数是"+times/(24*60*60*1000)+"天");//转化成天数
// 求出今天距离2022年1月1日还有多少天
Calendar birthday2=Calendar.getInstance();
birthday2.set(2022, 01, 01);
Long time2= birthday2.getTimeInMillis()-now.getTimeInMillis();//二者之间相差的毫秒数
System.out.println("天数是"+time2/(24*60*60*1000)+"天");//转化成天数
}
}
用自己的格式写出现在符合中国习惯的时间
public class Lianxi {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1;
int date=c.get(Calendar.DATE);
int hour=c.get(Calendar.HOUR);
int min=c.get(Calendar.MINUTE);
int sec=c.get(Calendar.SECOND);
int week=c.get(Calendar.DAY_OF_WEEK);
String h,m,s,w=null;
if(hour<10){
h="0"+hour;
}else{
h=hour+"";
}
if(min<10){
m="0"+min;
}else{
m=min+"";
}
if(sec<10){
s="0"+sec;
}else{
s=sec+"";
}
switch(week){
case 1:
w="天";
break;
case 2:
w="一";
break;
case 3:
w="二";
break;
case 4:
w="三";
break;
case 5:
w="四";
break;
case 6:
w="五";
break;
case 7:
w="六";
break;
default:
break;
}
System.out.println(year+"年"+month+"月"+date+"日"+h+":"+m+":"+s+"星期"+w);
}
}
基本类型包装类:
java将基本数据类型值封装成了对象,用于在基本数据和字符串之间进行转换。
8种基本包装类:
将字符串转为基本类型:
int number=Integer.parseInt("2000");
System.out.println(number+2);
double money=Double.parseDouble("12.3");
System.out.println(money+2);
将基本数据类型转换成字符串的3种方式:
package com.oracle.demo01;
public class Demo02 {
public static void main(String[] args) {
将基本数据类型转为字符串,第一种方式:
String s1=123+"";
System.out.println(s1+2);
第二种方式:
String s2=String.valueOf(12.3);
System.out.println(s2+2);
第三种方式:
String s3=Integer.toString(456);
System.out.println(s3+2);
}
}
基本数据类型转为包装类:
//第一种方式:构造方法
Integer i1=new Integer(12);
Integer i2=new Integer("45");
//包装类中的valueOf()方法;
Integer i3=Integer.valueOf(78);
Integer i4=Integer.valueOf("36");
再把包装类型转为基本数据类型:用包装类的intValue()方法:
int ii1=i1.intValue();
System.out.println(ii1+2);
自动装箱和自动拆箱:
自动装箱 基本数据类型转为包装类型 自动装箱必须在byte范围内,-127-127
Integer i1=123; // Integer i1=new Integer(123);
自动拆箱 包装类型转为基本数据类型
int num=i1+3; // int num=i1.intValue()+3;
System.out.println(num);