package com.taobao.zeus.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class DateUtil {
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) throws ParseException {
System.out.println(string2Date("2014-01-22 23:59:59").toString());
System.out.println(getDateTimeStrByTZ("2014-09-22 00:09:59"));
System.out.println(timestamp2Date(1411315799000L,"GMT+0800"));
System.out.println(getRawOffset("2014-09-22 00:09:59"));
System.out.println(StringToDate("2014-09-22 00:09:59", "yyyy-MM-dd HH:mm:ss").getTime());
System.out.println(getDelayStartTime(4, "GMT+0800"));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(new Date().getTime());
calendar.add(10, -1);
System.out.println(calendar.getTime());
calendar.add(Calendar.HOUR,-1);
System.out.println(calendar.getTime());
}
public static Date StringToDate(String dateStr,String formatStr){
DateFormat sdf=new SimpleDateFormat(formatStr);
Date date=null;
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static Date timestamp2Date(long timestamp, String timezone)
throws ParseException {
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
DATE_FORMAT);
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timezone));
SimpleDateFormat dateFormatLocal = new SimpleDateFormat(
DATE_FORMAT);
return dateFormatLocal.parse(dateFormatGmt.format(new Date(timestamp)));
}
public static String getDelayStartTime(int hour, String timezone) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(new Date().getTime());
calendar.add(10, hour);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
"yyyy-MM-dd HH:00:00");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timezone));
return dateFormatGmt.format(calendar.getTime());
}
public static String getDelayTime(int hour, String date)
throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(string2Date(date).getTime());
calendar.add(10, hour);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
DATE_FORMAT);
return dateFormatGmt.format(calendar.getTime());
}
public static String getDelayEndTime(int hour, String timezone) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(new Date().getTime());
calendar.add(10, hour);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
"yyyy-MM-dd HH:59:59");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timezone));
return dateFormatGmt.format(calendar.getTime());
}
public static String getDayStartTime(int off, String timezone) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(new Date().getTime());
calendar.add(5, off);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
"yyyy-MM-dd 00:00:00");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timezone));
return dateFormatGmt.format(calendar.getTime());
}
public static String getDayEndTime(int off, String timezone) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(new Date().getTime());
calendar.add(5, off);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
"yyyy-MM-dd 23:59:59");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timezone));
return dateFormatGmt.format(calendar.getTime());
}
public static String getTimeStrByTimestamp(long timestamp, String tz) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp);
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
DATE_FORMAT);
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(tz));
return dateFormatGmt.format(calendar.getTime());
}
public static String getDateTimeStrByTZ(String tzStr) {
SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
DATE_FORMAT);
dateFormatGmt.setTimeZone(TimeZone.getTimeZone(tzStr));
return dateFormatGmt.format(new Date());
}
public static long getDefaultRawOffset() {
return TimeZone.getDefault().getRawOffset();
}
public static long getRawOffset(String timeZoneStr) {
return TimeZone.getTimeZone(timeZoneStr).getRawOffset();
}
public static String timestamp2DataTime(long timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(Long.valueOf(timestamp));
}
public static long string2Timestamp(String dateString, String timezone)
throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if ((timezone != null) && (!timezone.equals(""))) {
df.setTimeZone(TimeZone.getTimeZone(timezone));
}
Date date1 = df.parse(dateString);
long temp = date1.getTime();
return temp;
}
public static Date string2Date(String dateString) throws ParseException {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateString);
}
public static String date2String(Date date) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
public static String getDefaultTZStr() {
SimpleDateFormat dateFormat = new SimpleDateFormat("Z");
StringBuilder sb = new StringBuilder("GMT");
sb.append(dateFormat.format(new Date()));
return sb.toString();
}
public static String getToday() {
return new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}
}