码迷,mamicode.com
首页 > 移动开发 > 详细

Android 时间工具DateUtil

时间:2015-11-03 00:37:05      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

Android 时间工具DateUtil

 

  • String 转换 Date

  • long 转换 String

  • long 去除 时分秒

  • 计算时间差

  • 24小时制转12小时制

  • Date 转换 String

  • DateUtil全部源码

 


 

String 转换 Date

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* String 转换 Date
*
* @param str
* @param format
* @return
*/
public static Date string2Date(String str, String format) {
try {
return new SimpleDateFormat(format).parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
}

 

 


 

long 转换 String

 

1
2
3
4
5
6
7
8
9
10
11
12
/**
* Date(long) 转换 String
*
* @param time
* @param format
* @return
*/
public static String date2String(long time, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
String s = sdf.format(time);
return s;
}

 

 


 

long 去除 时分秒

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* long 去除 时分秒
* 时分秒全部为0
*
* @param date
* @return
*/
public static long getYearMonthDay(long date) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}

 

 


 

计算时间差

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* 获取目标时间和当前时间之间的差距
*
* @param date
* @return
*/
public static String getTimestampString(Date date) {
Date curDate = new Date();
long splitTime = curDate.getTime() - date.getTime();
if (splitTime < (30 * ONE_DAY)) {
if (splitTime < ONE_MINUTE) {
return "刚刚";
}
if (splitTime < ONE_HOUR) {
return String.format("%d分钟前", splitTime / ONE_MINUTE);
}
 
if (splitTime < ONE_DAY) {
return String.format("%d小时前", splitTime / ONE_HOUR);
}
 
return String.format("%d天前", splitTime / ONE_DAY);
}
String result;
result = "M月d日 HH:mm";
return (new
 
 
SimpleDateFormat(result, Locale.CHINA)).format(date);
}

 

 


 

24小时制转12小时制

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* 24小时制 转换 12小时制
*
* @param time
* @return
*/
public static String time24To12(String time) {
String str[] = time.split(":");
int h = Integer.valueOf(str[0]);
int m = Integer.valueOf(str[1]);
String sx;
if (h < 1) {
h = 12;
sx = "上午";
} else if (h < 12) {
sx = "上午";
} else if (h < 13) {
sx = "下午";
} else {
sx = "下午";
h -= 12;
}
return String.format("%d:%02d%s", h, m, sx);
}

 

 


 

Date 转换 String

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
public static String[] WEEK = new String[]{"天", "一", "二", "三", "四", "五", "六"};
 
private static final long ONE_SECOND = 1000;
private static final long ONE_MINUTE = ONE_SECOND * 60;
private static final long ONE_HOUR = ONE_MINUTE * 60;
private static final long ONE_DAY = ONE_HOUR * 24;
 
/**
* Date 转换 HH
*
* @param date
* @return
*/
public static String date2HH(Date date) {
return new SimpleDateFormat("HH").format(date);
}
 
/**
* Date 转换 HH:mm:ss
*
* @param date
* @return
*/
public static String date2HHmm(Date date) {
return new SimpleDateFormat("HH:mm").format(date);
}
 
/**
* Date 转换 HH:mm:ss
*
* @param date
* @return
*/
public static String date2HHmmss(Date date) {
return new SimpleDateFormat("HH:mm:ss").format(date);
}
 
/**
* Date 转换 MM.dd
*
* @param date
* @return
*/
public static String date2MMdd(Date date) {
return new SimpleDateFormat("MM.dd").format(date);
}
 
/**
* Date 转换 yyyy.MM.dd
*
* @param date
* @return
*/
public static String date2yyyyMMdd(Date date) {
return new SimpleDateFormat("yyyy.MM.dd").format(date);
}
 
/**
* Date 转换 MM月dd日 星期
*
* @param date
* @return
*/
public static String date2MMddWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
return new SimpleDateFormat("MM月dd日 星期").format(date) + week[dayOfWeek - 1];
}
 
/**
* Date 转换 yyyy年MM月dd日 星期
*
* @param date
* @return
*/
public static String date2yyyyMMddWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
return new SimpleDateFormat("yyyy年MM月dd日 星期").format(date) + week[dayOfWeek - 1];
}

 

 


 

DateUtil全部源码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
public class DateUtil {
 
public static String[] WEEK = new String[]{"天", "一", "二", "三", "四", "五", "六"};
 
private static final long ONE_SECOND = 1000;
private static final long ONE_MINUTE = ONE_SECOND * 60;
private static final long ONE_HOUR = ONE_MINUTE * 60;
private static final long ONE_DAY = ONE_HOUR * 24;
 
/**
* String 转换 Date
*
* @param str
* @param format
* @return
*/
public static Date string2Date(String str, String format) {
try {
return new SimpleDateFormat(format).parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
}
 
/**
* Date(long) 转换 String
*
* @param time
* @param format
* @return
*/
public static String date2String(long time, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
String s = sdf.format(time);
return s;
}
 
/**
* long 去除 时分秒
* 时分秒全部为0
*
* @param date
* @return
*/
public static long getYearMonthDay(long date) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}
 
/**
* 获取目标时间和当前时间之间的差距
*
* @param date
* @return
*/
public static String getTimestampString(Date date) {
Date curDate = new Date();
long splitTime = curDate.getTime() - date.getTime();
if (splitTime < (30 * ONE_DAY)) {
if (splitTime < ONE_MINUTE) {
return "刚刚";
}
if (splitTime < ONE_HOUR) {
return String.format("%d分钟前", splitTime / ONE_MINUTE);
}
 
if (splitTime < ONE_DAY) {
return String.format("%d小时前", splitTime / ONE_HOUR);
}
 
return String.format("%d天前", splitTime / ONE_DAY);
}
String result;
result = "M月d日 HH:mm";
return (new
 
 
SimpleDateFormat(result, Locale.CHINA)).format(date);
}
 
/**
* 24小时制 转换 12小时制
*
* @param time
* @return
*/
public static String time24To12(String time) {
String str[] = time.split(":");
int h = Integer.valueOf(str[0]);
int m = Integer.valueOf(str[1]);
String sx;
if (h < 1) {
h = 12;
sx = "上午";
} else if (h < 12) {
sx = "上午";
} else if (h < 13) {
sx = "下午";
} else {
sx = "下午";
h -= 12;
}
return String.format("%d:%02d%s", h, m, sx);
}
 
/**
* Date 转换 HH
*
* @param date
* @return
*/
public static String date2HH(Date date) {
return new SimpleDateFormat("HH").format(date);
}
 
/**
* Date 转换 HH:mm:ss
*
* @param date
* @return
*/
public static String date2HHmm(Date date) {
return new SimpleDateFormat("HH:mm").format(date);
}
 
/**
* Date 转换 HH:mm:ss
*
* @param date
* @return
*/
public static String date2HHmmss(Date date) {
return new SimpleDateFormat("HH:mm:ss").format(date);
}
 
/**
* Date 转换 MM.dd
*
* @param date
* @return
*/
public static String date2MMdd(Date date) {
return new SimpleDateFormat("MM.dd").format(date);
}
 
/**
* Date 转换 yyyy.MM.dd
*
* @param date
* @return
*/
public static String date2yyyyMMdd(Date date) {
return new SimpleDateFormat("yyyy.MM.dd").format(date);
}
 
/**
* Date 转换 MM月dd日 星期
*
* @param date
* @return
*/
public static String date2MMddWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
return new SimpleDateFormat("MM月dd日 星期").format(date) + WEEK[dayOfWeek - 1];
}
 
/**
* Date 转换 yyyy年MM月dd日 星期
*
* @param date
* @return
*/
public static String date2yyyyMMddWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
return new SimpleDateFormat("yyyy年MM月dd日 星期").format(date) + WEEK[dayOfWeek - 1];
}
 
}

Android 时间工具DateUtil

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4931888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!