一、日期格式化
1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 5 public class DateDemo { 6 7 public static void main(String[] args) { 8 Date date=new Date(); 9 10 DateFormat dateFormat=DateFormat.getDateInstance(); 11 12 System.out.println(dateFormat.format(date)); 13 14 dateFormat=new SimpleDateFormat("yyyy--MM--dd"); 15 System.out.println(dateFormat.format(date)); 16 } 17 }
自定义格式化SimpleDateFormat字母代表的意义
Letter | Date or Time Component | Presentation | Examples |
---|---|---|---|
G |
Era designator | Text | AD |
y |
Year | Year | 1996 ; 96 |
Y |
Week year | Year | 2009 ; 09 |
M |
Month in year (context sensitive) | Month | July ; Jul ; 07 |
L |
Month in year (standalone form) | Month | July ; Jul ; 07 |
w |
Week in year | Number | 27 |
W |
Week in month | Number | 2 |
D |
Day in year | Number | 189 |
d |
Day in month | Number | 10 |
F |
Day of week in month | Number | 2 |
E |
Day name in week | Text | Tuesday ; Tue |
u |
Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1 |
a |
Am/pm marker | Text | PM |
H |
Hour in day (0-23) | Number | 0 |
k |
Hour in day (1-24) | Number | 24 |
K |
Hour in am/pm (0-11) | Number | 0 |
h |
Hour in am/pm (1-12) | Number | 12 |
m |
Minute in hour | Number | 30 |
s |
Second in minute | Number | 55 |
S |
Millisecond | Number | 978 |
z |
Time zone | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
Time zone | RFC 822 time zone | -0800 |
X |
Time zone | ISO 8601 time zone | -08 ; -0800 ; -08:00 |
二、日期字符串转日期对象
1 import java.text.DateFormat; 2 import java.text.ParseException; 3 import java.text.SimpleDateFormat; 4 5 public class DateDemo { 6 7 public static void main(String[] args) throws ParseException { 8 String strDate="2019/12/30"; 9 10 DateFormat dateFormat=DateFormat.getDateInstance(); 11 12 System.out.println(dateFormat.parse(strDate)); 13 strDate="2019--11--30"; 14 dateFormat=new SimpleDateFormat("yyyy--MM--dd"); 15 System.out.println(dateFormat.parse(strDate)); 16 } 17 }
三、日期操作
Date不够国际化已被Calender取代了
1 import java.text.ParseException; 2 import java.util.Calendar; 3 4 public class DateDemo { 5 6 public static void main(String[] args) throws ParseException { 7 9 //系统默认时间 10 Calendar c = Calendar.getInstance(); 11 //指定时间 12 c.set(2019,2,1);//月是从零开始的 13 //时间偏移 14 c.add(Calendar.DAY_OF_MONTH, -1); 15 show(c); 16 17 } 18 19 private static void show(Calendar c) { 20 int year = c.get(Calendar.YEAR); 21 int month = c.get(Calendar.MONTH) + 1; 22 int day = c.get(Calendar.DAY_OF_MONTH); 23 int week = c.get(Calendar.DAY_OF_WEEK); 24 System.out.println(year + "/" + month + "/" + day+" "+getWeek(week)); 25 } 26 27 private static String getWeek(int index) { 28 String[] week= {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; 29 return week[index]; 30 } 31 }