开发时需要把如“今天 12:15” "昨天 21:21" "前天 03: 02"之类的String转换成Date,所以写了个方法,有更好的写法的话欢迎留言
1 //获取今天、昨天、前天的某个时间的方法, 如"昨天 21:21" "前天 15:15"
2 private static Date getFormatDate(String updated) throws Exception{
3 if (updated.substring(0, 2).equals("今天")){
4 String partOfDate = updated.substring(3);
5 Calendar calendar = Calendar.getInstance();
6 calendar.setTime(new Date());
7 calendar.set(Calendar.HOUR_OF_DAY, 0);
8 calendar.set(Calendar.MINUTE, 0);
9 calendar.set(Calendar.SECOND, 0);
10 SimpleDateFormat todaySdf = new SimpleDateFormat("yyyy-MM-dd");
11 String today = todaySdf.format(calendar.getTime());
12 String finalString = today + " " + partOfDate;
13 SimpleDateFormat finalSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
14 return finalSdf.parse(finalString);
15 }else if (updated.substring(0,2).equals("昨天")){
16 String partOfDate = updated.substring(3);
17 Calendar calendar = Calendar.getInstance();
18 calendar.setTime(new Date());
19 calendar.add(Calendar.DATE, -1);
20 calendar.set(Calendar.HOUR_OF_DAY, 0);
21 calendar.set(Calendar.MINUTE, 0);
22 calendar.set(Calendar.SECOND, 0);
23 SimpleDateFormat yesterdaySdf = new SimpleDateFormat("yyyy-MM-dd");
24 String yesterday = yesterdaySdf.format(calendar.getTime());
25 String finalString = yesterday + " " + partOfDate;
26 SimpleDateFormat finalSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
27 return finalSdf.parse(finalString);
28 }else if (updated.substring(0, 2).equals("前天")){
29 String partOfDate = updated.substring(3);
30 Calendar calendar = Calendar.getInstance();
31 calendar.setTime(new Date());
32 calendar.add(Calendar.DATE, -2);
33 calendar.set(Calendar.HOUR_OF_DAY, 0);
34 calendar.set(Calendar.MINUTE, 0);
35 calendar.set(Calendar.SECOND, 0);
36 SimpleDateFormat daysBeforeSdf = new SimpleDateFormat("yyyy-MM-dd");
37 String daysBefore = daysBeforeSdf.format(calendar.getTime());
38 String finalString = daysBefore + " " + partOfDate;
39 SimpleDateFormat finalSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
40 return finalSdf.parse(finalString);
41 }else {
42 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
43 return sdf.parse(updated);
44 }
45 }
Written on Dec. 14th, 2019