打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
新手必备的常用代码片段整理(三)
以下内容来自多个开源项目的整理和自己的项目积累
px-dp转换
px-sp转换
把一个毫秒数转化成时间字符串
把日期毫秒转化为字符串
把日期毫秒转化为字符串文件名
转换当前时间为易用时间格式
字符串解析成毫秒数
手机号码正则
邮箱正则
px-dp转换
1
2
3
4
5
6
7
8
9
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
px-sp转换
1
2
3
4
5
6
7
8
9
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
把一个毫秒数转化成时间字符串
格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒600毫秒)
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
/**
* @param millis
* 要转化的毫秒数。
* @param isWhole
* 是否强制全部显示小时/分/秒/毫秒。
* @param isFormat
* 时间数字是否要格式化,如果true:少位数前面补全;如果false:少位数前面不补全。
* @return 返回时间字符串:小时/分/秒/毫秒的格式(如:24903600 --> 06小时55分03秒600毫秒)。
*/
public static String millisToString(long millis, boolean isWhole,
boolean isFormat) {
String h = '';
String m = '';
String s = '';
String mi = '';
if (isWhole) {
h = isFormat ? '00小时' : '0小时';
m = isFormat ? '00分' : '0分';
s = isFormat ? '00秒' : '0秒';
mi = isFormat ? '00毫秒' : '0毫秒';
}
long temp = millis;
long hper = 60 * 60 * 1000;
long mper = 60 * 1000;
long sper = 1000;
if (temp / hper > 0) {
if (isFormat) {
h = temp / hper < 10 ? '0' + temp / hper : temp / hper + '';
} else {
h = temp / hper + '';
}
h += '小时';
}
temp = temp % hper;
if (temp / mper > 0) {
if (isFormat) {
m = temp / mper < 10 ? '0' + temp / mper : temp / mper + '';
} else {
m = temp / mper + '';
}
m += '分';
}
temp = temp % mper;
if (temp / sper > 0) {
if (isFormat) {
s = temp / sper < 10 ? '0' + temp / sper : temp / sper + '';
} else {
s = temp / sper + '';
}
s += '秒';
}
temp = temp % sper;
mi = temp + '';
if (isFormat) {
if (temp < 100 && temp >= 10) {
mi = '0' + temp;
}
if (temp < 10) {
mi = '00' + temp;
}
}
mi += '毫秒';
return h + m + s + mi;
}
格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒)。
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
/**
*
* @param millis
* 要转化的毫秒数。
* @param isWhole
* 是否强制全部显示小时/分/秒/毫秒。
* @param isFormat
* 时间数字是否要格式化,如果true:少位数前面补全;如果false:少位数前面不补全。
* @return 返回时间字符串:小时/分/秒/毫秒的格式(如:24903600 --> 06小时55分03秒)。
*/
public static String millisToStringMiddle(long millis, boolean isWhole,
boolean isFormat) {
return millisToStringMiddle(millis, isWhole, isFormat, '小时', '分钟', '秒');
}
public static String millisToStringMiddle(long millis, boolean isWhole,
boolean isFormat, String hUnit, String mUnit, String sUnit) {
String h = '';
String m = '';
String s = '';
if (isWhole) {
h = isFormat ? '00' + hUnit : '0' + hUnit;
m = isFormat ? '00' + mUnit : '0' + mUnit;
s = isFormat ? '00' + sUnit : '0' + sUnit;
}
long temp = millis;
long hper = 60 * 60 * 1000;
long mper = 60 * 1000;
long sper = 1000;
if (temp / hper > 0) {
if (isFormat) {
h = temp / hper < 10 ? '0' + temp / hper : temp / hper + '';
} else {
h = temp / hper + '';
}
h += hUnit;
}
temp = temp % hper;
if (temp / mper > 0) {
if (isFormat) {
m = temp / mper < 10 ? '0' + temp / mper : temp / mper + '';
} else {
m = temp / mper + '';
}
m += mUnit;
}
temp = temp % mper;
if (temp / sper > 0) {
if (isFormat) {
s = temp / sper < 10 ? '0' + temp / sper : temp / sper + '';
} else {
s = temp / sper + '';
}
s += sUnit;
}
return h + m + s;
}
把一个毫秒数转化成时间字符串。格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分钟)
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
/**
*
* @param millis
* 要转化的毫秒数。
* @param isWhole
* 是否强制全部显示小时/分。
* @param isFormat
* 时间数字是否要格式化,如果true:少位数前面补全;如果false:少位数前面不补全。
* @return 返回时间字符串:小时/分/秒/毫秒的格式(如:24903600 --> 06小时55分钟)。
*/
public static String millisToStringShort(long millis, boolean isWhole,
boolean isFormat) {
String h = '';
String m = '';
if (isWhole) {
h = isFormat ? '00小时' : '0小时';
m = isFormat ? '00分钟' : '0分钟';
}
long temp = millis;
long hper = 60 * 60 * 1000;
long mper = 60 * 1000;
long sper = 1000;
if (temp / hper > 0) {
if (isFormat) {
h = temp / hper < 10 ? '0' + temp / hper : temp / hper + '';
} else {
h = temp / hper + '';
}
h += '小时';
}
temp = temp % hper;
if (temp / mper > 0) {
if (isFormat) {
m = temp / mper < 10 ? '0' + temp / mper : temp / mper + '';
} else {
m = temp / mper + '';
}
m += '分钟';
}
return h + m;
}
把日期毫秒转化为字符串
1
2
3
4
5
6
7
8
9
10
11
12
/**
* @param millis
* 要转化的日期毫秒数。
* @param pattern
* 要转化为的字符串格式(如:yyyy-MM-dd HH:mm:ss)。
* @return 返回日期字符串。
*/
public static String millisToStringDate(long millis, String pattern) {
SimpleDateFormat format = new SimpleDateFormat(pattern,
Locale.getDefault());
return format.format(new Date(millis));
}
把日期毫秒转化为字符串(文件名)
1
2
3
4
5
6
7
8
9
10
11
/**
* @param millis
* 要转化的日期毫秒数。
* @param pattern
* 要转化为的字符串格式(如:yyyy-MM-dd HH:mm:ss)。
* @return 返回日期字符串(yyyy_MM_dd_HH_mm_ss)。
*/
public static String millisToStringFilename(long millis, String pattern) {
String dateStr = millisToStringDate(millis, pattern);
return dateStr.replaceAll('[- :]', '_');
}
转换当前时间为易用时间格式
1小时内用,多少分钟前; 超过1小时,显示时间而无日期; 如果是昨天,则显示昨天 超过昨天再显示日期; 超过1年再显示年。
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
public static long oneHourMillis = 60 * 60 * 1000; // 一小时的毫秒数
public static long oneDayMillis = 24 * oneHourMillis; // 一天的毫秒数
public static long oneYearMillis = 365 * oneDayMillis; // 一年的毫秒数
public static String millisToLifeString(long millis) {
long now = System.currentTimeMillis();
long todayStart = string2Millis(millisToStringDate(now, 'yyyy-MM-dd'),
'yyyy-MM-dd');
// 一小时内
if (now - millis <= oneHourMillis && now - millis > 0l) {
String m = millisToStringShort(now - millis, false, false);
return ''.equals(m) ? '1分钟内' : m + '前';
}
// 大于今天开始开始值,小于今天开始值加一天(即今天结束值)
if (millis >= todayStart && millis <= oneDayMillis + todayStart) {
return '今天 ' + millisToStringDate(millis, 'HH:mm');
}
// 大于(今天开始值减一天,即昨天开始值)
if (millis > todayStart - oneDayMillis) {
return '昨天 ' + millisToStringDate(millis, 'HH:mm');
}
long thisYearStart = string2Millis(millisToStringDate(now, 'yyyy'),
'yyyy');
// 大于今天小于今年
if (millis > thisYearStart) {
return millisToStringDate(millis, 'MM月dd日 HH:mm');
}
return millisToStringDate(millis, 'yyyy年MM月dd日 HH:mm');
}
字符串解析成毫秒数
1
2
3
4
5
6
7
8
9
10
11
public static long string2Millis(String str, String pattern) {
SimpleDateFormat format = new SimpleDateFormat(pattern,
Locale.getDefault());
long millis = 0;
try {
millis = format.parse(str).getTime();
} catch (ParseException e) {
Log.e('TAG', e.getMessage());
}
return millis;
}
手机号码正则
1
public static final String REG_PHONE_CHINA = '^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$';
邮箱正则
1
public static final String REG_EMAIL = '\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*';
转载地址:http://blog.csdn.net/zhaokaiqiang1992
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
StringBuffer和StringBuilder的区别
字符串中的字符排序
16进制字符串与byte数组互转
java中字符窜与16进制,byte之间的转换
java类型之间的转换
JAVA经典算法50题(4)【面试+工作】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服