package com.mite8.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* Author: blogchong
* Time: 2016/6/19
* Email: blogchong#qq.com
* 公众号:数据虫巢 ID:blogchong
* Des: 时间转换函数
*/
public class TransferTime {
// public static void main(String[] args) throws Exception {
//
// String type = "dd/MMM/yyy:HH:mm:ss Z";
//
// Date dateDate = new Date();
//
// //1469896652
// System.out.println(TransferTime.longToString(1469896652, "YY/MM/dd"));
// System.out.println(TransferTime.stringToLong("2016-08-03", "yyy-MM-dd")/1000);
// System.out.println(TransferTime.dateToString(new Date(), "YY/MM/dd"));
//
// long time1 = TransferTime.stringToLong("2016-10-3", "yyy-MM-dd")/1000;
// long time2 = TransferTime.dateToLong(new Date())/1000;
//
// String strDate = dateToString(dateDate, type);
////
//// Long longDate = stringToLong(strDate, type);
////
//// System.out.println("初始时间1:" + strDate);
//// System.out.println("初始时间2:" + longDate/1000);
//
// }
// date类型转换为String类型
// formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
// data Date类型的时间
public static String dateToString(Date data, String formatType) {
return new SimpleDateFormat(formatType, Locale.ENGLISH).format(data);
}
// long类型转换为String类型
// currentTime要转换的long类型的时间,秒级
// formatType要转换的string类型的时间格式
public static String longToString(long currentTime, String formatType)
throws ParseException {
Date date = longToDate(currentTime, formatType); // long类型转成Date类型
String strTime = dateToString(date, formatType); // date类型转成String
return strTime;
}
// string类型转换为date类型
// strTime要转换的string类型的时间,formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日
// HH时mm分ss秒,
// strTime的时间格式必须要与formatType的时间格式相同
public static Date stringToDate(String strTime, String formatType)
throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(formatType, Locale.ENGLISH);
Date date = null;
date = formatter.parse(strTime);
return date;
}
// long转换为Date类型
// currentTime要转换的long类型的时间,秒级
// formatType要转换的时间格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
public static Date longToDate(long currentTime, String formatType)
throws ParseException {
Date dateOld = new Date(currentTime * 1000); // 根据long类型的毫秒数生命一个date类型的时间
String sDateTime = dateToString(dateOld, formatType); // 把date类型的时间转换为string
Date date = stringToDate(sDateTime, formatType); // 把String类型转换为Date类型
return date;
}
// string类型转换为long类型
// strTime要转换的String类型的时间
// formatType时间格式
// strTime的时间格式和formatType的时间格式必须相同
//输出的时间为毫秒级
public static long stringToLong(String strTime, String formatType)
throws ParseException {
Date date = stringToDate(strTime, formatType); // String类型转成date类型
if (date == null) {
return 0;
} else {
long currentTime = dateToLong(date); // date类型转成long类型
return currentTime;
}
}
// date类型转换为long类型
// date要转换的date类型的时间
public static long dateToLong(Date date) {
return date.getTime();
}
}