时间转换格式操作
2009-02-28 17:24
183 查看
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public final class DateUtil
{
public static Date strToDate(String str)
{
String date = toStr(str).replace(' ', '-');
date = date.replace(':', '-');
date = date.replace('.', '-');
date = date.replace('/', '-');
date = date.replaceAll("-", "");
//System.err.println(str+"--[34]--"+date);
return intArrToDate(strToIntArr(date));
}
private static int[] strToIntArr(String ymdhms)
{
int[] ymd = new int[6];
String str = toStr(ymdhms); //ymdhms: yyyyMMddHHmmss
if (str.length()>3) ymd[0] = toInt(str.substring(0,4));
if (str.length()>5) ymd[1] = toInt(str.substring(4,6));
if (str.length()>7) ymd[2] = toInt(str.substring(6,8));
if (str.length()>9) ymd[3] = toInt(str.substring(8,10));
if (str.length()>11) ymd[4] = toInt(str.substring(10,12));
if (str.length()>13) ymd[5] = toInt(str.substring(12,14));
//System.out.println("[23] y:"+ymd[0]+" M:"+ymd[1]+" d:"+ymd[2]+" H:"+ymd[3]+" m:"+ymd[4]+" s:"+ymd[5]);
return ymd;
}
private static Date intArrToDate(int[] ymd)
{
try
{
if (ymd==null || ymd.length<6) return null;
//System.out.println("[43] y:"+ymd[0]+" M:"+ymd[1]+" d:"+ymd[2]+" H:"+ymd[3]+" m:"+ymd[4]+" s:"+ymd[5]);
if (ymd[0]>9999 || ymd[1]>12 || ymd[2]>31 || ymd[3]>24 || ymd[4]>60 || ymd[5]>60) return null;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, ymd[0]);
calendar.set(Calendar.MONTH, ymd[1]-1);
calendar.set(Calendar.DATE, ymd[2]);
calendar.set(Calendar.HOUR_OF_DAY, ymd[3]);
calendar.set(Calendar.MINUTE, ymd[4]);
calendar.set(Calendar.SECOND, ymd[5]);
return calendar.getTime();
}
catch (Exception e)
{
System.err.println("[strToDate] error: "+e);
}
return null;
}
public static Date dateAdd(Date date, int type, int ymdhms)
{
if (date == null) return null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
switch (type) {
case 1: // year
calendar.add(Calendar.YEAR, ymdhms);
break;
case 2: // month
calendar.add(Calendar.MONTH, ymdhms);
break;
case 3: // day
calendar.add(Calendar.DATE, ymdhms);
break;
case 4: // hour
calendar.add(Calendar.HOUR, ymdhms);
break;
case 5: // minute
calendar.add(Calendar.MINUTE, ymdhms);
break;
case 6: // second
calendar.add(Calendar.SECOND, ymdhms);
break;
}
//6.second 5.minutes 4.hour 3.day 2.month 1.year
return calendar.getTime();
}
public static int dateCompare(Date date1, Date date2)
{
long v1 = (date1==null?0l:date1.getTime());
long v2 = (date2==null?0l:date2.getTime());
if (v1 > v2) return 1;
else if (v1 < v2) return -1;
return 0;
}
public static String dateToStr(Date date, String style)
{
try
{
if (date==null) return "";
if (style==null) return sdf.format(date);
return (new SimpleDateFormat(style).format(date));
}
catch (Exception e)
{
System.err.println("[dateToStr] error: "+e);
}
return "";
}
//日期增加年份、月份、天数等并转换为long类型
public static long dateAddToLong(String str,int mark, int ymdhms){
return dateToLong(dateAdd(strToDate(str), mark, ymdhms));
}
public static long strToDateToLong(String ymdhms)
{
return dateToLong(intArrToDate(strToIntArr(ymdhms)));
}
public static long strToLong(String str)
{
return dateToLong(strToDate(str))/1000*1000;
}
public static long dateToLong(Date date)
{
return (date==null?0l:date.getTime()/1000*1000);
}
public static Date dateSub(Date date, int type, int ymdhms)
{
return dateAdd(date, type, 0 - ymdhms);
}
public static String strDateToStr(String str)
{
return dateToStr(strToDate(str));
}
public static String longToDateStr(long mills)
{
return dateToStr(mills<100l?null:new Date(mills));
}
public static Date longToDate(long mills)
{
return (mills<100l?null:new Date(mills));
}
public static Date dateSub(Date date, long minus)
{
return (date==null?null:longToDate(date.getTime()-minus));
}
public static Date dateAdd(Date date, long minus)
{
return (date==null?null:longToDate(date.getTime()+minus));
}
public static String dateToStr(Date date)
{
return (date==null?"":sdf.format(date));
}
private static int toInt(Object obj)
{
try
{
return (toStr(obj).length()<1?0:Integer.parseInt(toStr(obj)));
}
catch (Exception e)
{
return 0;
}
}
private static String toStr(Object obj)
{
return (obj==null?"":obj.toString().trim());
}
public static String longToDay(long minus1,long minus2)
{
long time=minus1-minus2;
long d=time/(1000*60*60*24);
long h=(time-d*(1000*60*60*24))/(1000*60*60);
long m=(time-(d*24+h)*(1000*60*60))/(1000*60);
return d+"d"+h+"h"+m+"m";
}
public static void main2(String[] args)
{
long v1 = System.currentTimeMillis();
long v2 = (new Date()).getTime();
System.out.println(" >>> [getTime --> currentTimeMillis] >> "+(v2-v1));
//System.err.println(" >>> "+currDate()+" >>> "+currYMD()+" >>> "+currHMS());
//System.err.println(" >>> "+longDate()+" >>> "+longYMD()+" >>> "+longHMS());
System.out.println(" >>> [dateToStr --> longToDate] >> "+dateToStr(longToDate(v2)));
v1 = 1201838400859l;
System.err.println(" >>> [mills --> date] >> ["+v1+" --> "+dateToStr(longToDate(v1))+"]");
System.out.println(" >>> [dateToStr --> longToDate ---> datatoLong] >> "+longToDateStr(v1));
Date d1 = new Date();
Date d2 = new Date();
System.out.println(" >>> [dateAdd year+2 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 1, 2)));
System.out.println(" >>> [dateAdd month+3] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 2, 3)));
System.out.println(" >>> [dateAdd day+5 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 3, 5)));
System.out.println(" >>> [dateAdd hour+8 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 4, 80)));
System.out.println(" >>> [dateAdd minute ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 5, 70)));
System.out.println(" >>> [dateAdd second ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 6, 66)));
System.err.println(" >>> [dateSub year+2 ] ["+dateToStr(d2)+"] >> "+dateToStr(dateSub(d2, 1, 2)));
System.err.println(" >>> [dateSub month+3] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 2, 3)));
System.err.println(" >>> [dateSub day+5 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 3, 5)));
System.err.println(" >>> [dateSub hour+8 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 4, 80)));
System.err.println(" >>> [dateSub minute ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 5, 70)));
System.err.println(" >>> [dateSub second ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 6, 66)));
String str = "2010-11-15:10:52:55.122";
System.err.println(" @@@ [dateToStr --> longToDate ---> datatoLong] >> "+dateToStr(strToDate(str)));
System.err.println("------------------------------------------------------");
DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
System.out.println(shortDateFormat.format(d1));
System.out.println(mediumDateFormat.format(d1));
System.out.println(longDateFormat.format(d1));
System.out.println(fullDateFormat.format(d1));
}
public static void main(String[] args) throws Exception
{
// String v1 = "2008-01-01 23:58:58";
// Date d1 = strToDate(v1);
// System.out.println(v1+ " >> "+dateToStr(strToDate(v1)));
// System.out.println(v1+" add 1 hour "+dateToStr(dateAdd(d1, 4, 1)));
// System.out.println(v1+" add 2 mins "+dateToStr(dateAdd(d1, 5, 2)));
// System.out.println(v1+" add 3 secs "+dateToStr(dateAdd(d1, 6, 3)));
// System.out.println("=============================================");
//
// String v2 = "2007-02-28 23:59:59";
// Date d2 = strToDate(v2);
// System.err.println(v2+ " >> "+dateToStr(strToDate(v2)));
// System.err.println(v2+" add 1 hour "+dateToStr(dateAdd(d2, 4, 1)));
// System.err.println(v2+" add 2 mins "+dateToStr(dateAdd(d2, 5, 2)));
// System.err.println(v2+" add 3 secs "+dateToStr(dateAdd(d2, 6, 3)));
// System.err.println(v2+" add 1 year "+dateToStr(dateAdd(d2, 1, 1)));
// System.err.println(v2+" add 2 mons "+dateToStr(dateAdd(d2, 2, 2)));
// System.err.println(v2+" add 3 days "+dateToStr(dateAdd(d2, 3, 3)));
long l1=DateUtil.strToLong("2008-12-01 20:20:00");
long l2=DateUtil.strToLong("2008-12-15 18:20:00");
System.err.println(longToDay(l2,l1));
}
private DateUtil() { }
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public final class DateUtil
{
public static Date strToDate(String str)
{
String date = toStr(str).replace(' ', '-');
date = date.replace(':', '-');
date = date.replace('.', '-');
date = date.replace('/', '-');
date = date.replaceAll("-", "");
//System.err.println(str+"--[34]--"+date);
return intArrToDate(strToIntArr(date));
}
private static int[] strToIntArr(String ymdhms)
{
int[] ymd = new int[6];
String str = toStr(ymdhms); //ymdhms: yyyyMMddHHmmss
if (str.length()>3) ymd[0] = toInt(str.substring(0,4));
if (str.length()>5) ymd[1] = toInt(str.substring(4,6));
if (str.length()>7) ymd[2] = toInt(str.substring(6,8));
if (str.length()>9) ymd[3] = toInt(str.substring(8,10));
if (str.length()>11) ymd[4] = toInt(str.substring(10,12));
if (str.length()>13) ymd[5] = toInt(str.substring(12,14));
//System.out.println("[23] y:"+ymd[0]+" M:"+ymd[1]+" d:"+ymd[2]+" H:"+ymd[3]+" m:"+ymd[4]+" s:"+ymd[5]);
return ymd;
}
private static Date intArrToDate(int[] ymd)
{
try
{
if (ymd==null || ymd.length<6) return null;
//System.out.println("[43] y:"+ymd[0]+" M:"+ymd[1]+" d:"+ymd[2]+" H:"+ymd[3]+" m:"+ymd[4]+" s:"+ymd[5]);
if (ymd[0]>9999 || ymd[1]>12 || ymd[2]>31 || ymd[3]>24 || ymd[4]>60 || ymd[5]>60) return null;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, ymd[0]);
calendar.set(Calendar.MONTH, ymd[1]-1);
calendar.set(Calendar.DATE, ymd[2]);
calendar.set(Calendar.HOUR_OF_DAY, ymd[3]);
calendar.set(Calendar.MINUTE, ymd[4]);
calendar.set(Calendar.SECOND, ymd[5]);
return calendar.getTime();
}
catch (Exception e)
{
System.err.println("[strToDate] error: "+e);
}
return null;
}
public static Date dateAdd(Date date, int type, int ymdhms)
{
if (date == null) return null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
switch (type) {
case 1: // year
calendar.add(Calendar.YEAR, ymdhms);
break;
case 2: // month
calendar.add(Calendar.MONTH, ymdhms);
break;
case 3: // day
calendar.add(Calendar.DATE, ymdhms);
break;
case 4: // hour
calendar.add(Calendar.HOUR, ymdhms);
break;
case 5: // minute
calendar.add(Calendar.MINUTE, ymdhms);
break;
case 6: // second
calendar.add(Calendar.SECOND, ymdhms);
break;
}
//6.second 5.minutes 4.hour 3.day 2.month 1.year
return calendar.getTime();
}
public static int dateCompare(Date date1, Date date2)
{
long v1 = (date1==null?0l:date1.getTime());
long v2 = (date2==null?0l:date2.getTime());
if (v1 > v2) return 1;
else if (v1 < v2) return -1;
return 0;
}
public static String dateToStr(Date date, String style)
{
try
{
if (date==null) return "";
if (style==null) return sdf.format(date);
return (new SimpleDateFormat(style).format(date));
}
catch (Exception e)
{
System.err.println("[dateToStr] error: "+e);
}
return "";
}
//日期增加年份、月份、天数等并转换为long类型
public static long dateAddToLong(String str,int mark, int ymdhms){
return dateToLong(dateAdd(strToDate(str), mark, ymdhms));
}
public static long strToDateToLong(String ymdhms)
{
return dateToLong(intArrToDate(strToIntArr(ymdhms)));
}
public static long strToLong(String str)
{
return dateToLong(strToDate(str))/1000*1000;
}
public static long dateToLong(Date date)
{
return (date==null?0l:date.getTime()/1000*1000);
}
public static Date dateSub(Date date, int type, int ymdhms)
{
return dateAdd(date, type, 0 - ymdhms);
}
public static String strDateToStr(String str)
{
return dateToStr(strToDate(str));
}
public static String longToDateStr(long mills)
{
return dateToStr(mills<100l?null:new Date(mills));
}
public static Date longToDate(long mills)
{
return (mills<100l?null:new Date(mills));
}
public static Date dateSub(Date date, long minus)
{
return (date==null?null:longToDate(date.getTime()-minus));
}
public static Date dateAdd(Date date, long minus)
{
return (date==null?null:longToDate(date.getTime()+minus));
}
public static String dateToStr(Date date)
{
return (date==null?"":sdf.format(date));
}
private static int toInt(Object obj)
{
try
{
return (toStr(obj).length()<1?0:Integer.parseInt(toStr(obj)));
}
catch (Exception e)
{
return 0;
}
}
private static String toStr(Object obj)
{
return (obj==null?"":obj.toString().trim());
}
public static String longToDay(long minus1,long minus2)
{
long time=minus1-minus2;
long d=time/(1000*60*60*24);
long h=(time-d*(1000*60*60*24))/(1000*60*60);
long m=(time-(d*24+h)*(1000*60*60))/(1000*60);
return d+"d"+h+"h"+m+"m";
}
public static void main2(String[] args)
{
long v1 = System.currentTimeMillis();
long v2 = (new Date()).getTime();
System.out.println(" >>> [getTime --> currentTimeMillis] >> "+(v2-v1));
//System.err.println(" >>> "+currDate()+" >>> "+currYMD()+" >>> "+currHMS());
//System.err.println(" >>> "+longDate()+" >>> "+longYMD()+" >>> "+longHMS());
System.out.println(" >>> [dateToStr --> longToDate] >> "+dateToStr(longToDate(v2)));
v1 = 1201838400859l;
System.err.println(" >>> [mills --> date] >> ["+v1+" --> "+dateToStr(longToDate(v1))+"]");
System.out.println(" >>> [dateToStr --> longToDate ---> datatoLong] >> "+longToDateStr(v1));
Date d1 = new Date();
Date d2 = new Date();
System.out.println(" >>> [dateAdd year+2 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 1, 2)));
System.out.println(" >>> [dateAdd month+3] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 2, 3)));
System.out.println(" >>> [dateAdd day+5 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 3, 5)));
System.out.println(" >>> [dateAdd hour+8 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 4, 80)));
System.out.println(" >>> [dateAdd minute ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 5, 70)));
System.out.println(" >>> [dateAdd second ] ["+dateToStr(d1)+"] >> "+dateToStr(dateAdd(d1, 6, 66)));
System.err.println(" >>> [dateSub year+2 ] ["+dateToStr(d2)+"] >> "+dateToStr(dateSub(d2, 1, 2)));
System.err.println(" >>> [dateSub month+3] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 2, 3)));
System.err.println(" >>> [dateSub day+5 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 3, 5)));
System.err.println(" >>> [dateSub hour+8 ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 4, 80)));
System.err.println(" >>> [dateSub minute ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 5, 70)));
System.err.println(" >>> [dateSub second ] ["+dateToStr(d1)+"] >> "+dateToStr(dateSub(d1, 6, 66)));
String str = "2010-11-15:10:52:55.122";
System.err.println(" @@@ [dateToStr --> longToDate ---> datatoLong] >> "+dateToStr(strToDate(str)));
System.err.println("------------------------------------------------------");
DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
System.out.println(shortDateFormat.format(d1));
System.out.println(mediumDateFormat.format(d1));
System.out.println(longDateFormat.format(d1));
System.out.println(fullDateFormat.format(d1));
}
public static void main(String[] args) throws Exception
{
// String v1 = "2008-01-01 23:58:58";
// Date d1 = strToDate(v1);
// System.out.println(v1+ " >> "+dateToStr(strToDate(v1)));
// System.out.println(v1+" add 1 hour "+dateToStr(dateAdd(d1, 4, 1)));
// System.out.println(v1+" add 2 mins "+dateToStr(dateAdd(d1, 5, 2)));
// System.out.println(v1+" add 3 secs "+dateToStr(dateAdd(d1, 6, 3)));
// System.out.println("=============================================");
//
// String v2 = "2007-02-28 23:59:59";
// Date d2 = strToDate(v2);
// System.err.println(v2+ " >> "+dateToStr(strToDate(v2)));
// System.err.println(v2+" add 1 hour "+dateToStr(dateAdd(d2, 4, 1)));
// System.err.println(v2+" add 2 mins "+dateToStr(dateAdd(d2, 5, 2)));
// System.err.println(v2+" add 3 secs "+dateToStr(dateAdd(d2, 6, 3)));
// System.err.println(v2+" add 1 year "+dateToStr(dateAdd(d2, 1, 1)));
// System.err.println(v2+" add 2 mons "+dateToStr(dateAdd(d2, 2, 2)));
// System.err.println(v2+" add 3 days "+dateToStr(dateAdd(d2, 3, 3)));
long l1=DateUtil.strToLong("2008-12-01 20:20:00");
long l2=DateUtil.strToLong("2008-12-15 18:20:00");
System.err.println(longToDay(l2,l1));
}
private DateUtil() { }
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
相关文章推荐
- Python中time模块和datetime模块的常用操作以及几种常用时间格式间的转换
- sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)
- sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)
- sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)
- sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)
- [C语言] 时间操作,把1970年开始秒数计算的时间,转换为字符串格式输出;
- sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)
- 时间戳和日期格式相互转换
- (转)sql 时间转换格式 convert(varchar(10),字段名,转换格式)
- SQL中用CONVERT转换时间类型 的 转换格式
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- 时间操作(Java版)—将毫秒转换为年月日时分秒
- C#返回时间格式转换成 js 字符串
- iOS 获取系统时间以及时间与日期格式互相转换
- 将时间转换成指定的格式
- java 13位时间戳,在前台转换为日期格式jq封装
- C#将GMT时间格式转换为CST时间格式
- php获取当前时间和转换格式
- TimeUtils时间戳转换为指定格式的时间
- 将日期时间转换为指定格式