前言
在 Android 开发过程中,我们常常会遇见把时间戳转化成具体的年月日或者星期几的需求,这个实现可以通过 SimpleDateFormat 来完成。
常见的时间格式:
- 日期格式:
"2017-06-20 10:30:30"
- 代码模版:
"yyyy-MM-dd HH:mm:ss"
- 日期格式:
"2017年06月20日 10时30分30秒"
- 代码模版:
"yyyy年MM月dd日 HH时mm分ss秒"
实现
一、时间戳转换成字符串
/**
*
* @param time 1541569323155
* @param pattern yyyy-MM-dd HH:mm:ss
* @return 2018-11-07 13:42:03
*/
public static String getDate2String(long time, String pattern) {
Date date = new Date(time);
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.getDefault());
return format.format(date);
}
二、字符串转换成时间戳
/**
*
* @param dateString 2018-11-07 13:42:03,
* @param pattern yyyy-MM-dd HH:mm:ss
* @return 1541569323000
*/
public static long getString2Date(String dateString,String pattern) {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, Locale.getDefault());
Date date = new Date();
try {
date = dateFormat.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date.getTime();
}
三、时间戳转换成星期
public static String getWeek(long time) {
Calendar cd = Calendar.getInstance();
cd.setTime(new Date(time));
int year = cd.get(Calendar.YEAR); //获取年份
int month = cd.get(Calendar.MONTH); //获取月份
int day = cd.get(Calendar.DAY_OF_MONTH); //获取日期
int week = cd.get(Calendar.DAY_OF_WEEK); //获取星期
String weekString;
switch (week) {
case Calendar.SUNDAY:
weekString = "周日";
break;
case Calendar.MONDAY:
weekString = "周一";
break;
case Calendar.TUESDAY:
weekString = "周二";
break;
case Calendar.WEDNESDAY:
weekString = "周三";
break;
case Calendar.THURSDAY:
weekString = "周四";
break;
case Calendar.FRIDAY:
weekString = "周五";
break;
default:
weekString = "周六";
break;
}
return weekString;
}
最后
如果还有其他问题,欢迎和我交流,完善SimpleDateFormat的用法,
我的微信 lww262626 (备注简书)。
网友评论