📄 dateutil.java
字号:
package cn.js.fan.util;
import java.util.*;
import java.text.*;
public class DateUtil {
public DateUtil() {
}
/**
* 格式化为字符串
* @param d Date
* @param format String
* @return String
*/
public static String format(java.util.Date d, String format) {
if (d == null)
return "";
SimpleDateFormat myFormatter = new SimpleDateFormat(format);
return myFormatter.format(d);
}
public static String formatDate(Date d, int format, Locale locale, TimeZone timeZone) {
if (d==null)
return "";
DateFormat df = DateFormat.getDateInstance(format, locale);
df.setTimeZone(timeZone);
return df.format(d);
}
public static String formatDateTime(Date d, int format1, int format2, Locale locale, TimeZone timeZone) {
if (d==null)
return "";
// System.out.println("d=" + d + " format1=" + format1 + " format2=" + format2 + " locale=" + locale + " timezone=" + timeZone);
DateFormat df = DateFormat.getDateTimeInstance(format1, format2, locale);
df.setTimeZone(timeZone);
return df.format(d);
}
public static long toLong(Date d) {
if (d==null)
return 0;
else
return d.getTime();
}
public static String toLongString(Date d) {
return "" + toLong(d);
}
/**
* 从15位的字符串从解析出时间
* @param timeMillis String
* @return Date
*/
public static Date parse(String timeMillis) {
java.util.Date d = null;
try {
d = new java.util.Date(Long.parseLong(timeMillis.trim()));
}
catch (Exception e) {
// System.out.println("parse:" + e.getMessage());
// e.printStackTrace();
}
return d;
}
/**
* 从字符串解析出时间
* @param format String 格式,如:"yy-MM-dd HH:mm:ss"
* @param time String
* @return Date
*/
public static Date parse(String time, String format) {
java.util.Date d = null;
try {
d = parse(time, format, java.util.Locale.CHINA);
}
catch (Exception e) {
// System.out.println("DateUtil.java parse:" + e.getMessage());
}
return d;
}
public static Date parse(String time, String format, Locale locale) throws Exception {
if (time==null)
return null;
SimpleDateFormat sdf = new SimpleDateFormat(
format, locale);
java.util.Date d = null;
d = sdf.parse(time);
return d;
}
public static String format(Calendar cal, String format) {
if (cal == null)
return "";
SimpleDateFormat myFormatter = new SimpleDateFormat(format);
return myFormatter.format(cal.getTime());
}
/**
* 加上天数
* @param d Date
* @param day int 天数
* @return Calendar
*/
public static Calendar add(java.util.Date d, int day) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.DATE, day);
return cal;
}
public static Date addDate(java.util.Date d, int day) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.DATE, day);
return cal.getTime();
}
public static Date addHourDate(java.util.Date d, int h) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.HOUR, h);
return cal.getTime();
}
public static Calendar addHour(java.util.Date d, int h) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.HOUR, h);
return cal;
}
public static Date addMinuteDate(java.util.Date d, int m) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.MINUTE, m);
return cal.getTime();
}
public static Calendar addMinute(java.util.Date d, int m) {
if (d == null)
return null;
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.MINUTE, m);
return cal;
}
/**
* 比较两个时间的值
* @param c1 Calendar
* @param c2 Calendar
* @return int 如果c1晚则为1,c2晚则为2,相等则为0,如果c1或c2为空则为-1
*/
public static int compare(Calendar c1, Calendar c2) {
if (c1 == null || c2 == null)
return -1;
long r = c1.getTimeInMillis() - c2.getTimeInMillis();
if (r > 0)
return 1;
else if (r == 0)
return 0;
else
return 2;
}
/**
* 比较两个时间的值
* @param c1 Date
* @param c2 Date
* @return int 如果c1晚则为1,c2晚则为2,相等则为0,如果c1或c2为空则为-1
* @return int
*/
public static int compare(Date c1, Date c2) {
if (c1 == null || c2 == null)
return -1;
long r = c1.getTime() - c2.getTime();
// System.out.println("compare r=" + r);
if (r > 0)
return 1;
else if (r == 0)
return 0;
else
return 2;
}
/**
* 比较两个日期是否为同一天
* @param c1 Calendar
* @param c2 Calendar
* @return boolean
*/
public static boolean isSameDay(Calendar c1, Calendar c2) {
if (c1==null || c2==null)
return false;
if (c1.get(c1.YEAR)==c2.get(c1.YEAR) && c1.get(c1.MONTH)==c2.get(c1.MONTH) && c1.get(c1.DAY_OF_MONTH)==c2.get(c1.DAY_OF_MONTH))
return true;
else
return false;
}
/**
* 比较两个日期是否为同一天
* @param d1 Date
* @param d2 Date
* @return boolean
*/
public static boolean isSameDay(Date d1, Date d2) {
if (d1==null || d2==null)
return false;
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
Calendar c2 = Calendar.getInstance();
c2.setTime(d2);
if (c1.get(c1.YEAR)==c2.get(c1.YEAR) && c1.get(c1.MONTH)==c2.get(c1.MONTH) && c1.get(c1.DAY_OF_MONTH)==c2.get(c1.DAY_OF_MONTH))
return true;
else
return false;
}
/**
* 计算两个日期相差的天数
* @param c1 Calendar
* @param c2 Calendar
* @return int 返回天数,不足24小时的为0
*/
public static int datediff(Calendar c1, Calendar c2) {
if (c1 == null || c2 == null)
return -1;
long r = c1.getTimeInMillis() - c2.getTimeInMillis();
r = r / (24 * 60 * 60 * 1000);
return (int) r;
}
/**
* 计算两个日期相差的天数
* @param c1 Date
* @param c2 Date
* @return int 返回天数,不足24小时的为0
*/
public static int datediff(Date c1, Date c2) {
if (c1 == null || c2 == null)
return -1;
long r = c1.getTime() - c2.getTime();
r = r / (24 * 60 * 60 * 1000);
return (int) r;
}
/**
* 取得相差的分钟数
* @param c1 Date
* @param c2 Date
* @return int
*/
public static int datediffMinute(Date c1, Date c2) {
if (c1 == null || c2 == null)
return 0;
long r = c1.getTime() - c2.getTime();
r = r / (60 * 1000);
return (int) r;
}
public static int datediffMinute(Calendar c1, Calendar c2) {
if (c1 == null || c2 == null)
return 0;
long r = c1.getTimeInMillis() - c2.getTimeInMillis();
r = r / (60 * 1000);
return (int) r;
}
/**
* 取得时间差中的天数、小时、分钟、秒
* @param d1 Date
* @param d2 Date
* @return int[]
*/
public static int[] dateDiffDHMS(Date d1, Date d2) {
int diffDay = datediff(d1, d2);
int h1 = d1.getHours();
int h2 = d2.getHours();
int m1 = d1.getMinutes();
int m2 = d2.getMinutes();
int s1 = d1.getSeconds();
int s2 = d2.getSeconds();
int s = s1-s2;
int m = m1-m2;
if (s<0) {
s += 60;
m -= 1;
}
int h = h1-h2;
if (m<0) {
m += 60;
h -= 1;
}
if (h<0) {
h += 24;
}
// System.out.println("DateUtil.java diffDay=" + diffDay);
int[] r = {diffDay, h, m, s};
return r;
}
/**
* 取得月份中的天数
* @param year int
* @param month int
* @return int
*/
public static int getDayCount(int year, int month) {
int daysInMonth[] = {
31, 28, 31, 30, 31, 30, 31, 31,
30, 31, 30, 31};
// 测试选择的年份是否是润年?
if (1 == month)
return ((0 == year % 4) && (0 != (year % 100))) ||
(0 == year % 400) ? 29 : 28;
else
return daysInMonth[month];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -