注:本文所有内容均属个人见解,如有错误望各位大佬好心指点批评,不胜感激
本章重点单词:
- parse:解析
- format:格式化
- pattern:模式
- amount:数量
- filed :领域
1.Date 类
构造方法:
Date(); 获取当前系统时间
Date(long date); 获取指定参数时间,从基准时间即1970-1-1 00:00:00 GMT以来的毫秒数
常用成员方法:
long getTime();返回date对象对应的毫秒数
void setTime();根据指定的毫秒数,修改时间
public class Test{
public static void main(String[] args) {
Date date = new Date();
System.out.println("日期:"+date);
}
}
2.DateFormat import java.text [抽象类]
不能创建对象,因此由其子类来创建对象(SimpleDateFormat 构造方法 SimpleDateFormat(String patten)[给定的模式和默认语言环境])
解析:把字符串类型的时间->Date类型的:1970年1月1日00:00 00-》>Date
格式化:Date类型的时间->字符串类型的时间
成员方法:
- Sting | ->Format(Date date):将Date格式化为字符串类型
- Date | ->Date parse(String source);将字符串类型解析为Date日期类型(转换时,该String要符合指定规则,否则不能转换)
※ DateFormat作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转换为一个Date对象
指定格式---->即SimpleDateFormat(String pattern)构造方法的形参;
public abstract class DateFormat extends Format
/*DateFormat类是一个抽象类,其本身内部提供了可以直接为其实例化的操作。
得到日期的DateFormat对象:
public static final DateFormat getDateInstance()
得到日期时间的DateFormat对象:
public static final DateFormat getDateTimeInstance()
直接使用DateFormat类完成Date类的转换功能:*/
public final String format(Date date)
import java.text.DateFormat ;
import java.util.Date ;
public class Test{
public static void main(String args[]){
DateFormat df1 = null ; // 声明一个DateFormat
DateFormat df2 = null ; // 声明一个DateFormat
df1 = DateFormat.getDateInstance() ; // 得到日期的DateFormat对象
df2 = DateFormat.getDateTimeInstance() ; // 得到日期时间的DateFormat对象
System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
System.out.println("DATETIME:" + df2.format(new Date())) ; // 按照日期时间格式化
}
};
通过此类可以直接将Date类的显示进行合理的格式化操作。此时采用的是默认的格式化操作,也可以通过Locale对象指定要显示的区域。如指定的区域是中国:
import java.text.DateFormat ;
import java.util.Date ;
import java.util.Locale ;
public class Test{
public static void main(String args[]){
DateFormat df1 = null ; // 声明一个DateFormat
DateFormat df2 = null ; // 声明一个DateFormat
df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")) ; // 得到日期的DateFormat对象
df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")) ; // 得到日期时间的DateFormat对象
System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
System.out.println("DATETIME:" + df2.format(new Date())) ; // 按照日期时间格式化
}
};
SimpleDateFormat类代码:此类的功能是完成日期的显示格式化的,例如,在开发中,可能会将一种日期格式变为另一种日期格式,如下所示:
import java.util.* ;
public class Test{
public static void main(String args[]){
String strDate = "2008-10-19 10:11:30.345" ;
// 准备第一个模板,从字符串中提取出日期数字
String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ;
// 准备第二个模板,将提取后的日期数字变为指定的格式
String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;
SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ; // 实例化模板对象
SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ; // 实例化模板对象
Date d = null ;
try{
d = sdf1.parse(strDate) ; // 将给定的字符串中的日期提取出来
}catch(Exception e){ // 如果提供的字符串格式有错误,则进行异常处理
e.printStackTrace() ; // 打印异常信息
}
System.out.println(sdf2.format(d)) ; // 将日期变为新的格式
}
};
3.Calendar类 --表示日历的类
里面的方法基本 都是静态方法,Calendar 又是抽象类,不能new,因此用静态方法创建对象
创建对象:
Calendar c = Calendar.getInstance(); //返回当前日历对象
或者用子类创建对象:
Calendar c = new GregorianCalendar();
成员方法:
1.abstract void add(int field,int amout);根据字段名称和偏移量,修改时间
field字段值:Calendar.YEAR amout 偏移量
2.int get (int field):返回日历字段的值,
3.Date getTime():返回一个表示此Calendar时间值的Date对象
4.void set(int field,int value):将给定的日历字段值设置为给定值
5.void set(int year,int month,int date,int hourOfDay,int minute,int second)
6.void setTime(Date date):
在Calendar 类中,月份的表示以0-11 表示1-12月
西方的周日,中国的周一
public class Test{
public static void main(String args[]){
Calendar calendar = new GregorianCalendar(); // 实例化Calendar类对象
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
}
};
//注:在取得月份的时候要特别注意,需要加1。
// 如果按照此方法取得,则很麻烦,最好的做法是将Date进行一些相关的格式化操作。
4.System 类
其构造方法为Final类型因此一般不会创建对象,并且成员方法一般为静态方法
- currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
- exit(int status) 用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
- gc() 用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
- getProperty(String key) 用来获取指定键(字符串名称)中所记录的系统属性信息
5.Math 类
数学的类,用来进行基本的数学运算的.
static int abs(int a)
static double ceil(double a)
static double floor(double a)
static double max(int a, int b)
static int min(int a, int b)
static double pow(double a, double b)
static long round(double a)
6.基本数据包装类型
可以把基本类型转成对象,也可以把对象转成基本类型,也可以基本数据类型转成字符串
1.把基本类型转成对象
包装类的构造方法:Interger inter = new Integer(50);
2.把对象转成基本数据类型
包装类对象的方法:inter.intValue();
3.把基本数据类型转成字符串
包装类的方法:inter.toString();
4.把字符串转成基本数据类型,
[parsenXXX]一般为静态方法,因此直接用类名访问[parse:解析]
包装类的方法:Integer.parseInt("1234");
5.把基本数据类型转成包装类型
包装类的方法:Integer.valueOf(55);
- 自动装箱:把基本类型的数据,自动转换成 包装类型的对象;
- 自动拆箱:把包装类型的对象 自动 转成 基本类型的数据;
总结:
Date类虽然直接取出的时间格式并不十分理想,但其作用依然很大
通过Calendar类可以完整的取得时间
DateFormat可以直接使用,但其本身是一个抽象类,可以根据Locale指定的区域不同得到不同的日期时间显示效果
SimpleDateFormat类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都是使用SimpleDateFormat类完成。
部分代码来自@闲来垂钓