java 日期操作(JavaAPI的日期处理详解)
java 日期操作(JavaAPI的日期处理详解)Date date = new Date(); public static void main(String[] args) { long getTime();返回date对象对应的毫秒数 void setTime();根据指定的毫秒数,修改时间public class Test{
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);
}
}
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进行一些相关的格式化操作。
大家如果需要更多的相关学习资料,我有一个专门的交流学习群:622497727 备注 头条就可以了!!!