新手必备的常用代码片段整理(三)
来源:互联网 发布:淘宝卖家5天不发货 编辑:程序博客网 时间:2024/05/22 14:23
以下内容来自多个开源项目的整理和自己的项目积累
- px-dp转换
- px-sp转换
- 把一个毫秒数转化成时间字符串
- 把日期毫秒转化为字符串
- 把日期毫秒转化为字符串文件名
- 转换当前时间为易用时间格式
- 字符串解析成毫秒数
- 手机号码正则
- 邮箱正则
- px-dp转换
px-dp转换
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转换
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); }
把一个毫秒数转化成时间字符串
1、格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒600毫秒)
/** * @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; }
2、格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分03秒)。
/** * * @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; }
3、把一个毫秒数转化成时间字符串。格式为小时/分/秒/毫秒(如:24903600 –> 06小时55分钟)
把日期毫秒转化为字符串
/** * * @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; }
把日期毫秒转化为字符串
* @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)); }
把日期毫秒转化为字符串(文件名)
/** * @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年再显示年。
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"); }
字符串解析成毫秒数
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; }
手机号码正则
public static final String REG_PHONE_CHINA = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
邮箱正则
public static final String REG_EMAIL = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
0 0
- 新手必备的常用代码片段整理(三)
- 新手必备的常用代码片段整理(三)
- 新手必备的常用代码片段整理(二)
- 新手必备的常用代码片段整理(一)
- 新手必备的常用代码片段整理(二)
- 新手必备的常用代码片段整理(一)
- Android:新手必备的常用代码片段整理(一)
- Android:新手必备的常用代码片段整理(二)
- 新手必备的常用代码片段整理(一)
- 新手必备的常用代码片段整理(二)
- 新手必备的常用 Android 代码片段整理(1)
- 新手必备的常用 Android 代码片段整理(2)
- 新手必备的常用 Android 代码片段整理(1)
- 新手必备的常用代码片段整理(一)
- 新手必备的常用代码片段整理(一)
- 新手必备的常用代码片段整理(二)
- 新手必备的常用代码片段整理(一)
- 新手必备的常用代码片段整理(二)
- python3 opencv3 help(cv2)
- mongo数据库增删改查操作
- virsh 修改openstack虚拟机的xml
- jmeter 3.0安装配置
- django 版本冲突 -未解决
- 新手必备的常用代码片段整理(三)
- Hive的组成模块
- 做三级微分销系统的意义及可行性分析
- leetcode题解日练--2016.7.1
- SQL注入原理讲解,很不错!
- JOGL FirstDemo
- 5-2 然后是几点 (15分)
- Linux中的线程局部存储(一)
- 回归架构本真:从规划、思维到设计,构建坚不可摧的架构根基