Java时间类型非常的差,首先版本问题,本人使用java在Android平台开发。很多Data类的方法已经不提倡使用,一个时间,居然要使用Calendar、DateFormat等类共同编码,非常麻烦。而且很多支持不足,比如时间加减,比如获取时间的日期而时分秒置0等,而C#的时间类实现的就非常方便。
public class DateUtil { public static Date getDate(Date date){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.add(Calendar.DAY_OF_MONTH, 1); dt = calendar.getTime(); return dt; } public static String getDateString(Date date){ String sDate = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dt = getDate(date); sDate = sdf.format(dt); return sDate; } public static long getDateLong(Date date){ long lDate = 0; Date dt = getDate(date); lDate = dt.getTime(); return lDate; } public static long getDateTimeLong(Date date){ long lDate = 0; lDate = date.getTime(); return lDate; } public static String getString(Date date, String format){ String sDate =""; SimpleDateFormat sdf = new SimpleDateFormat(format); sDate = sdf.format(date); return sDate; } public static long getString(String dateTime, String format){ long lDate = 0; SimpleDateFormat sdf = new SimpleDateFormat(format); try { Date date = sdf.parse(dateTime); lDate = date.getTime(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return lDate; } public static String getString(long tm, String format){ String sDate=""; Date date = DateUtil.putDateTime(tm); SimpleDateFormat sdf = new SimpleDateFormat(format); sDate = sdf.format(date); return sDate; } public static Date putDateTime(long time){ Date date = null; date = new Date(time); return date; } public static Date putDate(long time){ Date date = null; date = new Date(time); date = getDate(date); return date; } public static Date putDateTime(String dtString, String format){ Date date = null; SimpleDateFormat sdf = new SimpleDateFormat(format); try { date = sdf.parse(dtString); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } public static Date AddYear(Date date, int y){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.YEAR, y); dt = calendar.getTime(); return dt; } public static Date AddMonth(Date date, int m){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, m); dt = calendar.getTime(); return dt; } public static Date AddDay(Date date, int d){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, d); dt = calendar.getTime(); return dt; } public static Date AddHour(Date date, int h){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR_OF_DAY, h); dt = calendar.getTime(); return dt; } public static Date AddMinute(Date date, int m){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MINUTE, m); dt = calendar.getTime(); return dt; } public static Date AddSecond(Date date, int s){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.SECOND, s); dt = calendar.getTime(); return dt; } public static Date Add(Date date, int millisecond){ Date dt = null; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MILLISECOND, millisecond); dt = calendar.getTime(); return dt; } public static long Subtrat(Date date1, Date date2){ long l = 0; l = date1.getTime() - date2.getTime(); return l; } }