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

java的日期类

2017-06-18 19:39 471 查看

1.日期相关类

Date类: java.util.Date类,不是java.sql.Date.  类 Date 表示特定的瞬间,精确到毫秒.

import java.util.Date;

public class DateDemo1 {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString()); //Sun Jun 18 17:11:54 CST 2017
System.out.println("中国人的风格:"+date.toLocaleString()); //2017-6-18 17:11:54

//date-->long
long time = date.getTime();//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
System.out.println(time); // 1497777306478

//long-->date
long timeMillis = System.currentTimeMillis();//获取系统时间的毫秒数
date = new Date(timeMillis);
System.out.println(date.toLocaleString());//2017-6-18 17:17:19
}
}
DateFormat/SimpleDateFormat类:

日期格式化操作:

------------------------------------------------------------------------------

DateFormat:可以完成日期的格式化操作.

                      格式化(format):  Date类型对象------->String类型:    String format(Date date) 

                      解析(parse):       String类型时间------>Date类型:     Date parse(String source)  

import java.text.DateFormat;
import java.util.Date;

public class DateFormatDemo1 {
public static void main(String[] args) {

DateFormat dateInstance = DateFormat.getInstance();//获取DateFormat对象,普通格式
String formatDate = dateInstance.format(new Date());
System.out.println(formatDate);//17-6-18 下午5:24

dateInstance = DateFormat.getDateInstance(); //获取DateFormat对象,只有日期格式
String formatDate2 = dateInstance.format(new Date());
System.out.println(formatDate2);//2017-6-18

dateInstance = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //获取DateFormat对象,完整格式
String formatDate3 = dateInstance.format(new Date());
System.out.println(formatDate3);//2017年6月18日 下午05时27分38秒
}
}
--------------------------------------------------------------------------------

DateFormar转换的格式是固定的,我想根据自己的风格来做转换.

自定义格式,比如:2016-04-16  15:50:48

                   比如:2016/04/16  15:50:48
SimpleDateFormat类:是DateFormat的子类,支持自定义格式模式.(推荐使用这个)

转换格式的定义:比如  yyyy-MM-dd HH:mm:ss



转换方法:






import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo {

private static final String pattern = "yyyy-MM-dd HH:mm:ss"; //指定日期的格式

public static void main(String[] args) throws ParseException {

SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); //创建对象并指定格式
//将日期转换成指定格式的字符串
String formatDate = dateFormat.format(new Date());
System.out.println(formatDate); //2017-06-18 05:32:56
//将指定格式的字符串转换成日期
Date parseDate = dateFormat.parse(formatDate);
System.out.println(parseDate);
}
}
定义一个日期转换的util

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {

public static final String DEFAULT_DATE_PATTERN="yyyy-MM-dd HH:mm:ss";//默认的日期格式
private DateUtil() {} //私有化构造方法,避免外界创建对象

/**
* Date日期转换为String字符串
* @param date 传入的日期
* @param pattern 传入的格式
* @return 按照指定日期格式装换后的日期字符串
*/
public static String date2String(Date date,String pattern){
SimpleDateFormat dateFormat = new SimpleDateFormat();
if (!hasLength(pattern)) { //判断如果日期格式为空则给一个我们自己定义的默认的格式
pattern=DEFAULT_DATE_PATTERN;
}
dateFormat.applyPattern(pattern);//将给定模式字符串应用于此日期格式
return dateFormat.format(date);

}

/**
* Date日期转换为String字符串,如果用户只传入日期,使用该方法
* @param date 传入的日期
* @return 按照默认的日期格式装换后的日期字符串
*/
public static String date2String(Date date){
return date2String(date, null);
}

/**
* String字符串转换为Date日期
* @param date 传入的日期
* @param pattern 传入格式
* @return 返回指定格式的日期
* @throws ParseException 转换异常
*/
public static Date string2date(String date,String pattern) throws ParseException{
SimpleDateFormat dateFormat = new SimpleDateFormat();
if (!hasLength(pattern)) { //判断如果日期格式为空则给一个我们自己定义的默认的格式
pattern=DEFAULT_DATE_PATTERN;
}
dateFormat.applyPattern(pattern);//将给定模式字符串应用于此日期格式
return dateFormat.parse(date);
}
/**
* String字符串转换为Date日期 ,不指定格式
* @param date 传入的日期
* @return 返回指定格式的日期
* @throws ParseException 转换异常
*/
public static Date string2date(String date) throws ParseException{
return string2date(date, null);
}

/**
* 判断字符串非空,既不是引用为空,也不是空字符
* @param str 传入一个字符串
* @return true:字符串非空;false:字符串为空
*/
private static boolean hasLength(String str) {
return str != null && !"".equals(str.trim());
}

}测试:
import java.text.ParseException;
import java.util.Date;

public class TestDemo {

public static void main(String[] args) throws ParseException {

String stringDate1 = DateUtil.date2String(new Date(), "yyyy/MM/dd HH:mm:ss");
System.out.println(stringDate1); //2017/06/18 19:24:48
String stringDate2 = DateUtil.date2String(new Date());
System.out.println(stringDate2); //2017-06-18 19:24:48

Date date1 = DateUtil.string2date(stringDate1,"yyyy/MM/dd HH:mm:ss");
System.out.println(date1); //Sun Jun 18 19:24:48 CST 2017
Date date2 = DateUtil.string2date(stringDate2);
System.out.println(date2); //Sun Jun 18 19:24:48 CST 2017
}
}
Calendar类:

Java8中重新为日期定义了新的API.

-------------------------------------------------------------

Date类中的大量方法都已经过时了,过时不代表不存在,依然可以使用,只不过不建议使用,官方建议我们使用Calendar类.

日历类(Calendar):是抽象类,表示日历,比Date更强大.
创建日历对象:

  Calendar c = Calendar.getInstance();

   int get(int field) 返回给定日历字段(年,月,日,时,分,秒)的值。





查询最近一周.......的信息,如何表示最近这一周.

beginTime:

endTime: 当前系统时间的晚上凌晨之前.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息