时间字符串和时间戳转换
介绍
主要利用Java中的SimpleDateFormat和Date进行时间字符串和时间戳之间的转换,以及时间格式代表的含义。
时间格式(部分)
格式 | 含义 | 示例 |
---|---|---|
y | year | 2018 |
M | month in year | 07 |
w | week in year | 27 |
W | week in month | 6 |
D | day in year | 189 |
d | day in month | 17 |
H | Hour in day (0-23) | 23 |
h | Hour in am/pm (1-12) | 3 |
m | Minute in hour | 30 |
s | Second in minute | 30 |
转换代码
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Description: 时间处理函数(Java8)
* <p>
* Create: 2018/6/16 15:29
*
* @author Yang Meng(eyangmeng@163.com)
*/
public class TimeUtils {
/**
* 时间字符串格式转换为时间戳
*
* @param timeStr 时间字符串格式, eg. 2018-06-17 00:00:00
* @return 时间戳
* @throws Exception 时间格式解析错误
*/
public static long time2timestamp(String timeStr) throws Exception {
return time2timestamp(timeStr, DEFAULT_FORMAT);
}
/**
* 时间字符串格式转换为时间戳
*
* @param timeStr 时间字符串格式, eg. 2018-06-17 00:00:00
* @param timeFormat 时间格式
* @return 时间戳
* @throws Exception 时间格式解析错误
*/
public static long time2timestamp(String timeStr, String timeFormat) throws Exception {
SimpleDateFormat format = new SimpleDateFormat(timeFormat);
return format.parse(timeStr).getTime();
}
/**
* 时间戳转换为时间字符串
*
* @param timestamp 时间戳, eg. 1513440360000L
* @return 时间字符串格式
*/
public static String timestamp2time(long timestamp) {
SimpleDateFormat format = new SimpleDateFormat(DEFAULT_FORMAT);
return format.format(new Date(timestamp));
}
/**
* 时间戳转换为时间字符串
*
* @param timestamp 时间戳, eg. 1513440360000L
* @param timeFormat 时间格式
* @return 时间字符串格式
*/
public static String timestamp2time(long timestamp, String timeFormat) {
SimpleDateFormat format = new SimpleDateFormat(timeFormat);
return format.format(new Date(timestamp));
}
/** 默认时间格式: 2018-06-17 16:28:00 */
private final static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
}
参考
- Java类: java.text.SimpleDateFormat,java.util.Date
- Java docs: Class SimpleDateFormat