SimpleDateFormat的一些常用用法

SimpleDateFormat函数语法:

G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区

时间转字符串:

SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd",Locale.CHINA);
String date = sp.format("2017-12-31");
SimpleDateFormat aDate=new SimpleDateFormat("yyyy-mm-dd  HH:mm:ss");
SimpleDateFormat bDate=new SimpleDateFormat("yyyy-mmmmmm-dddddd");
long now=System.currentTimeMillis();
System.out.println(aDate.format(now));
System.out.println(bDate.format(now));
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
 System.out.println(myFmt.format(now));
 System.out.println(myFmt1.format(now));
 System.out.println(myFmt2.format(now));
 System.out.println(myFmt3.format(now));
 System.out.println(myFmt4.format(now));

结果:

2017-10-17  11:10:21
2017-000010-000017
2017年10月17日 11时10分21秒
17/10/17 11:10
2017-10-17 11:10:21
2017年10月17日 11时10分21秒 星期二 
一年中的第 290 天 一年中第42个星期 一月中第3个星期 在一天中11时 CST时区

字符串转时间:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd",Locale.CHINA);
Date date = sf.parse("9999-12-31");
 private static long parseTime(String strTime) {
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
     long time = 0L;
     try {
         time = format.parse(strTime).getTime();
     } catch (ParseException e) {
         e.printStackTrace();
     }
     return time;
 }

 public static void main(String[] args) {
     String aString="2017-11-12";
     long aTime=parseTime(aString);
     System.out.println(aTime);
     SimpleDateFormat aDate=new SimpleDateFormat("yyyy-MM-dd");
     System.out.println(aDate.format(aTime));

 }

结果:

1510416000000
2017-11-12

时间格式测试:toLocaleString 已经过时,建议用 DateFormat

System.out.println(new java.util.Date()); 
System.out.println(new java.util.Date().toLocaleString());  

输出:

Mon Dec 10 21:07:39 CST 2018
2018-12-10 21:07:39

实例:DateFormat

DateFormat ddf = DateFormat.getDateInstance();  
DateFormat dtf = DateFormat.getTimeInstance();  
DateFormat ddtf = DateFormat.getDateTimeInstance();  
Date date = new Date();  

System.out.println("日期:" + ddf.format(date));  
System.out.println("时间:" + dtf.format(date));  
System.out.println("日期时间:" + ddtf.format(date));  
SimpleDateFormat sdf = (SimpleDateFormat) DateFormat.getDateTimeInstance();  
System.out.println("日期时间:" + sdf.format(date));

输出:

日期:2018-12-10
时间:21:04:45
日期时间:2018-12-10 21:04:45
日期时间:2018-12-10 21:04:45

其他时间测试:

Date date1 = new Date();
java.sql.Date date2 = new java.sql.Date(date1.getTime());
Timestamp date3 = new Timestamp(date1.getTime());

System.out.println(date1.toLocaleString()+"____"+date2.toLocaleString()+"_____"+date3);
System.out.println(DateFormat.getInstance().format(date1));
System.out.println(DateFormat.getInstance().format(date2));
System.out.println(DateFormat.getInstance().format(date3));

输出:

2018-12-10 21:00:49____2018-12-10 21:00:49_____2018-12-10 21:00:49.143
18-12-10 下午9:00
18-12-10 下午9:00
18-12-10 下午9:00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值