import java.text.DateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;//作用:提供字符串形式的日期到毫秒的转换,和毫秒到字符串日期以及年、月、日的转换
public class DateMillisConvert { private static GregorianCalendar calendar = new GregorianCalendar();
public DateMillisConvert() { } //提供“yyyy-mm-dd”形式的字符串到毫秒的转换
public static long getMillis(String dateString) {
String[] date = dateString.split("-");
return getMillis(date[0], date[1], date[2]);
}
//根据输入的年、月、日,转换成毫秒表示的时间
public static long getMillis(int year, int month, int day) {
GregorianCalendar calendar = new GregorianCalendar(year, month, day);
return calendar.getTimeInMillis();
} //根据输入的年、月、日,转换成毫秒表示的时间
public static long getMillis(String yearString, String monthString, String dayString) {
int year = Integer.parseInt(yearString);
int month = Integer.parseInt(monthString);
int day = Integer.parseInt(dayString);
return getMillis(year, month, day);
}
//获得当前时间的毫秒表示
public static long getNow() {
GregorianCalendar now = new GregorianCalendar();
return now.getTimeInMillis();
}
//根据输入的毫秒数,获得日期字符串
public static String getDate(long millis) {
calendar.setTimeInMillis(millis);
return DateFormat.getDateInstance().format(calendar.getTime());
} //根据输入的毫秒数,获得年份
public static int getYear(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.YEAR);
} //根据输入的毫秒数,获得月份
public static int getMonth(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.MONTH);
} //根据输入的毫秒数,获得日期
public static int getDay(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.DATE);
} //根据输入的毫秒数,获得小时
public static int getHour(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.HOUR_OF_DAY);
} //根据输入的毫秒数,获得分钟
public static int getMinute(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.MINUTE);
} //根据输入的毫秒数,获得秒
public static int getSecond(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.SECOND);
}
}
import java.util.Calendar;
import java.util.GregorianCalendar;//作用:提供字符串形式的日期到毫秒的转换,和毫秒到字符串日期以及年、月、日的转换
public class DateMillisConvert { private static GregorianCalendar calendar = new GregorianCalendar();
public DateMillisConvert() { } //提供“yyyy-mm-dd”形式的字符串到毫秒的转换
public static long getMillis(String dateString) {
String[] date = dateString.split("-");
return getMillis(date[0], date[1], date[2]);
}
//根据输入的年、月、日,转换成毫秒表示的时间
public static long getMillis(int year, int month, int day) {
GregorianCalendar calendar = new GregorianCalendar(year, month, day);
return calendar.getTimeInMillis();
} //根据输入的年、月、日,转换成毫秒表示的时间
public static long getMillis(String yearString, String monthString, String dayString) {
int year = Integer.parseInt(yearString);
int month = Integer.parseInt(monthString);
int day = Integer.parseInt(dayString);
return getMillis(year, month, day);
}
//获得当前时间的毫秒表示
public static long getNow() {
GregorianCalendar now = new GregorianCalendar();
return now.getTimeInMillis();
}
//根据输入的毫秒数,获得日期字符串
public static String getDate(long millis) {
calendar.setTimeInMillis(millis);
return DateFormat.getDateInstance().format(calendar.getTime());
} //根据输入的毫秒数,获得年份
public static int getYear(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.YEAR);
} //根据输入的毫秒数,获得月份
public static int getMonth(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.MONTH);
} //根据输入的毫秒数,获得日期
public static int getDay(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.DATE);
} //根据输入的毫秒数,获得小时
public static int getHour(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.HOUR_OF_DAY);
} //根据输入的毫秒数,获得分钟
public static int getMinute(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.MINUTE);
} //根据输入的毫秒数,获得秒
public static int getSecond(long millis) {
calendar.setTimeInMillis(millis);
return calendar.get(Calendar.SECOND);
}
}
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
long time = format.parse(str).getTime() + 1000l*60*60*8 + 1000l*60*60*24*30;format = new SimpleDateFormat("yyyyMMdd");
Date res = format.parse(format.format(new Date(time)));
否则在多线程的时候可能会有问题要不就把每一个方法设置为synchronized
GregorianCalendar计算两个日期的天数也要转换成秒吧~~
谢谢 someone_somewhere overcast(http://blog.csdn.net/overcast)
overcast 好像SUN不赞成用DATE类啦 还有 1000l*60*60*8 为什么是10001??
好像应该是1秒=1000毫秒吧
不过问题已经解决~~ 谢谢各位朋友~~
1000是int类型,60和8都是
如果这样相乘的话1000*60*60*24*30应该要溢出了,得到的结果会不对
而1000l表示一个long类型就不会溢出了另外Date类应该没有@deprecated掉
只是里面的一些方法不推荐使用了,比如getDay之类的