一、日期与时间类
-
Data类
-
Calendar类
-
JDK 8 的日期与时间类
二、格式化类
1.DateFormat 类 抽象类
四个常量值
FULL:完整格式
LONG:长格式
MEDIUM:普通格式
SHORT:短格式
格式化:
Date date=new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
// 2019-11-4
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date)); //
2019-11-4 13:56:04
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println("只显示出时分秒:"+df3.format(date)); // 只显示出时分秒:
13:56:04
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,下午,时间(精确到秒)
System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date)); // 显示日期,周,上下午,时间(精确到秒):
2019年11月4日 星期一 下午01时56分04秒 CST
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date)); // 显示日期,上下午,时间(精确到秒):
2019年11月4日 下午01时56分04秒
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,下午,时间(精确到分)
System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date)); //显示日期,上下午,时间(精确到分):
19-11-4 下午1:56
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println("显示日期,时间(精确到分):"+df7.format(date)); // 显示日期,时间(精确到分):
2019-11-4 13:56:04
解析:
DateFormat dt1 = DateFormat.getDateInstance();
DateFormat dt2 = DateFormat.getDateInstance(DateFormat.LONG);
String str1 = "2019-01-27";
String str2 = "2019 年 01 月 27 日";
System.out.println(dt1.parse(str1)); // Sat Jan 21 00:00:00 CST 2019
System.out.println(dt2.parse(str2)); // Sat Jan 21 00:00:00 CST 2019
2.SimpleDateFormat 类
Date day1=new Date();
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df1.format(day1));
3.DateTimeFormatter 类 (相当于DateFormat与SimpleDateFormat的结合体)
三、三种格式化方法示例:
/*
//#,##0.00,解决金额小于1时金额显示格式不正确的问题;比如0.5元,#,###.00格式就会显示成.50。
double n1 = 123123123.107234;
double n2 = 123123123.5;
String a1 = "$#,###.##";
String a2 = "$#,###.00";
NumberFormat nf1 = new DecimalFormat(a1);
NumberFormat nf2 = new DecimalFormat(a2);
System.out.println(nf1.format(n1));//$123,123,123.11
System.out.println(nf2.format(n1));//$123,123,123.11
System.out.println(nf2.format(n2));//$123,123,123.50
*/
/*
Date day1=new Date();
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df1.format(day1));
////////////////////////////////////////////////
// * Y:year 2019
// * y:年份后两位 19
// * m:mouth 11
// * h:中文月份 十一月
// * d:day 03
// * D: 英式日期写法 11/03/19
// * T:time 22:40:05
// * H:hour 22
// * M:minute 40
// * S:second 05
Date date2 = new Date(System.currentTimeMillis());
String year2 = String.format("%tY", date2);
String month2 = String.format("%tm", date2);
String day2 = String.format("%td", date2);
String time2 = String.format(" %tT", date2);
System.out.println(year2+"-"+month2+"-"+day2+time2);
/////////////////////////////////////////////////////////////
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year3 = c.get(Calendar.YEAR);
int month3 = c.get(Calendar.MONTH);
int date3 = c.get(Calendar.DATE);
int hour3 = c.get(Calendar.HOUR_OF_DAY);
int minute3 = c.get(Calendar.MINUTE);
int second3 = c.get(Calendar.SECOND);
int week = c.get(Calendar.DAY_OF_WEEK)==1?7:c.get(Calendar.DAY_OF_WEEK)-1; //以周日为一周的第一天
System.out.println(year3 + "/" + month3 + "/" + date3 + " " +hour3 + ":" +minute3 + ":" + second3 +" 周"+week);
*/
/*
Date date=new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println("只显示出时分秒:"+df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒) 推荐
System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println("显示日期,时间(精确到分):"+df7.format(date));
*/
/*
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = df.parse("2019-11-3 23:04:19");
//指定日期
Calendar cal = df.getCalendar();
//当前时间
Calendar cas = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH);//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日 "+hour+"时"+minute+"分"+second+"秒 星期"+WeekOfYear);
*/
/*
Date date=new Date();
DateFormat df= DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
System.out.println(df.format(date));
*/
package com.zhiyou.test;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class getTimeFormat {
public static void main(String[] args) throws ParseException {
/*
//#,##0.00,解决金额小于1时金额显示格式不正确的问题;比如0.5元,#,###.00格式就会显示成.50。
// double n1 = 123123123.107234;
// double n2 = 123123123.5;
// String a1 = "$#,###.##";
// String a2 = "$#,###.00";
//
// NumberFormat nf1 = new DecimalFormat(a1);
// NumberFormat nf2 = new DecimalFormat(a2);
//
// System.out.println(nf1.format(n1));//$123,123,123.11
// System.out.println(nf2.format(n1));//$123,123,123.11
// System.out.println(nf2.format(n2));//$123,123,123.50
Date day1=new Date();
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
System.out.println(df1.format(day1));
////////////////////////////////////////////////
// * Y:year 2019
// * y:年份后两位 19
// * m:mouth 11
// * h:中文月份 十一月
// * d:day 03
// * D: 英式日期写法 11/03/19
// * T:time 22:40:05
// * H:hour 22
// * M:minute 40
// * S:second 05
Date date2 = new Date(System.currentTimeMillis());
String year2 = String.format("%tY", date2);
String month2 = String.format("%tm", date2);
String day2 = String.format("%td", date2);
String time2 = String.format(" %tT", date2);
System.out.println(year2+"-"+month2+"-"+day2+time2);
/////////////////////////////////////////////////////////////
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year3 = c.get(Calendar.YEAR);
int month3 = c.get(Calendar.MONTH);
int date3 = c.get(Calendar.DATE);
int hour3 = c.get(Calendar.HOUR_OF_DAY);
int minute3 = c.get(Calendar.MINUTE);
int second3 = c.get(Calendar.SECOND);
int week = c.get(Calendar.DAY_OF_WEEK)==1?7:c.get(Calendar.DAY_OF_WEEK)-1; //以周日为一周的第一天
System.out.println(year3 + "/" + month3 + "/" + date3 + " " +hour3 + ":" +minute3 + ":" + second3 +" 周"+week);
*/
Date date=new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println("只显示出时分秒:"+df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒) 推荐
System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println("显示日期,时间(精确到分):"+df7.format(date));
/*
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = df.parse("2019-11-3 23:04:19");
//指定日期
Calendar cal = df.getCalendar();
//当前时间
Calendar cas = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH);//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日 "+hour+"时"+minute+"分"+second+"秒 星期"+WeekOfYear);
*/
}
}