Uma classe .DATE
número de classe métodos Data estão desatualizados, obsoletos não significa que não está ainda disponível, mas não é recomendado, o funcionário sugeriu que usar a classe Calendar.
Simples de classe data de uso
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//Mon Mar 30 18:13:26 CST 2020
// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
System.out.println(date.getTime());//1585563307686
//过时方法,但是可以使用
System.out.println(date.toLocaleString());//2020-3-30 18:14:13
}
}
Dois .DateFormat classe
data DateFormat / hora formatação subclasses da classe abstrata, que formata e analisa datas ou tempo de forma independente da linguagem. Data / formatação tempo subclasses (como o SimpleDateFormat) permitiu formato (data ou seja -> texto), análise (texto -> data) e padronização. A data é representado como um objeto Date, ou como um número de milissegundos GMT (Greenwich Mean Time) 01 de janeiro de 1970 00:00:00 começando a partir deste momento.
Os métodos mais comuns:
①format (data Data) Data um texto de data / hora formatado.
②getInstance () Obtém uso estilo curto para a data e hora do formatador padrão de data / hora.
③parse () a partir de um dado início ao analisar a cadeia de texto para gerar uma data.
public class DateFormatDemo {
public static void main(String[] args) throws ParseException {
Date date = new Date();
DateFormat df = DateFormat.getInstance();
String format = df.format(date);
System.out.println(format);//20-3-30 下午6:22默认的是短风格的日期格式
Date date1 = df.parse(format);
System.out.println(date1);//Mon Mar 30 18:29:00 CST 2020
df = DateFormat.getDateInstance(DateFormat.LONG);
String format1 = df.format(date);
System.out.println(format1);//2020年3月30日.选择风格
df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String format2 = df.format(date);
System.out.println(format2);//2020年3月30日 下午06时26分07秒
}
}
Três .SimpleDateFormat classe
SimpleDateFormat é uma forma locale-relacionada classe concreta de formatação e as datas de análise. Ela permite a formatação (data -> texto), análise (texto -> data) e normalização.
SimpleDateFormat permite a seleção de qualquer data definida pelo usuário - modo de formato de hora. No entanto, recomenda-se para criar uma data DateFormat pela getTimeInstance, getDateInstance ou getDateTimeInstance - formatador tempo. Cada um destes métodos pode retornar uma classe / hora formatador formato de data modo padrão de inicialização. formato padrão pode ser modificado de acordo com o método necessidade applyPattern.
Os métodos mais comuns:
①applyPattern (padrão String) dada cadeia padrão para esse formato de data.
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
Date date = new Date();
String pattern="yyyy-MM-dd";//指定风格
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(pattern);//将给定模式字符串应用于此日期格式
String format = sdf.format(date);
System.out.println(format);//2020-03-30
Date date1 = sdf.parse(format);
System.out.println(date1);//Mon Mar 30 00:00:00 CST 2020
}
}
.Calendar quatro categorias
classe Calendário é uma classe abstrata que fornece uma conversão específica instantânea entre um grupo, como um campo de calendário ano, mês, DAY_OF_MONTH, Hora de algum outro método, e o calendário para o campo operacional (por exemplo, data obtida na próxima semana ) fornece um número de métodos. Instantaneamente valor de milissegundos disponível para indicar que ele é da época (ou seja GMT 00 01 de janeiro de 1970 são: 00: 00.000, calendário gregoriano) offset.
public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象
Date time = calendar.getTime();
System.out.println(time);//Mon Mar 30 18:43:52 CST 2020
//获取HOUR属性的值
int hour = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println(hour);//18
}
}
Cinco operação pequena (demanda: inquérito na semana passada ... informações)
Nota: A necessidade mês +1
public class CalendarDemo {
public static void main(String[] args) {
// 需求:查询最近一周。。。的信息,如何表示最近这一周
Date current = new Date();
Date endTime = null;
Calendar c = Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
c.setTime(current);
//把日增加一天,时分秒设置为0
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, 0);
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
endTime = c.getTime();
c.add(Calendar.DAY_OF_MONTH, -7);
Date beginTime = c.getTime();
System.out.println("开始时间:"+beginTime.toLocaleString());//开始时间:2020-3-24 0:00:00
System.out.println("结束时间:"+endTime.toLocaleString());//结束时间:2020-3-31 0:00:00
}
}
Ferramentas de seis .Date
public class DateUtils {
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
/***
* Date类型转换成XMLGregorianCalendar类型
*
* @param date
* @return
*/
public static XMLGregorianCalendar convertToXMLGregorianCalendar(Date date) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
XMLGregorianCalendar gc = null;
try {
gc = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
} catch (Exception e) {
logger.error("Date类型转换成XMLGregorianCalendar类型出错:" + e);
}
return gc;
}
/***
* XMLGregorianCalendar类型转换成Date类型
*
* @param cal
* @return
* @throws Exception
*/
public static Date convertToDate(XMLGregorianCalendar cal) throws Exception {
GregorianCalendar ca = cal.toGregorianCalendar();
return ca.getTime();
}
/**
* String 转 Date
*
* @param str 日期字符串
* @param format 转换格式
* @return Date
*/
public static Date stringToDate(String str, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
Date date = null;
try {
date = dateFormat.parse(str);
} catch (ParseException e) {
logger.error("String类型 转 Date类型出错:" + e);
}
return date;
}
/**
* Date 转 String
* auther: shijing
* 2015年3月25日上午11:28:14
*
* @param date 日期
* @param format 转换格式
* @return
*/
public static String dateToString(Date date, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
String strDate = null;
try {
if (date != null) {
strDate = dateFormat.format(date);
}
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error("Date类型 转 String类型出错:" + e);
}
return strDate;
}
/***
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
XMLGregorianCalendar d = DateUtils
.convertToXMLGregorianCalendar(new Date());
// System.out.println(d.getDay());
XMLGregorianCalendar cal = null;
try {
cal = DatatypeFactory.newInstance().newXMLGregorianCalendar();
cal.setMonth(06);
cal.setYear(2010);
Date date = DateUtils.convertToDate(cal);
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat formatter = new SimpleDateFormat(format);
// System.out.println(formatter.format(date));
Date d1 = DateUtils.stringToDate("2014/7/24 9:51:00", "yyyy/MM/dd hh:mm:ss");
XMLGregorianCalendar d2 = DateUtils.convertToXMLGregorianCalendar(d1);
// System.out.println(d2.toString());
String dateStr = DateUtils.dateToString(cal.toGregorianCalendar().getTime(), "yyyy-MM-dd HH:mm:ss");
// System.out.println("dateStr="+ dateStr);
} catch (Exception e) {
e.printStackTrace();
}
}
}