Java String和Date的转换和 Date类型操作
String—>Date
String dateString = "2017-03-11 "; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date = sdf.parse(dateString); } catch (ParseException e) { System.out.println(e.getMessage()); }
/** * 字符串转换到时间格式 * @param dateStr 需要转换的字符串 * @param formatStr 需要格式的目标字符串 举例 yyyy-MM-dd * @return Date 返回转换后的时间 * @throws ParseException 转换异常 */ private Date parseDate(String strFormat, String dateValue) { if (dateValue == null) return null; if (strFormat == null) strFormat = "yyyyMMdd"; DateFormat dateFormat = new SimpleDateFormat(strFormat); Date date = null; try { date = dateFormat.parse(dateValue); } catch (ParseException pe) { date = null; } return date; }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.StringUtils; /** * 日期Util类 * * @author yk */ public class DateUtil { private static String defaultDatePattern = "yyyy-MM-dd "; /** * 获得默认的 date pattern */ public static String getDatePattern() { return defaultDatePattern; } /** * 返回预设Format的当前日期字符串 */ public static String getToday() { Date today = new Date(); return format(today); } /** * 使用预设Format格式化Date成字符串 */ public static String format(Date date) { return date == null ? " " : format(date, getDatePattern()); } /** * 使用参数Format格式化Date成字符串 */ public static String format(Date date, String pattern) { return date == null ? " " : new SimpleDateFormat(pattern).format(date); } /** * 使用预设格式将字符串转为Date */ public static Date parse(String strDate) throws ParseException { return StringUtils.isBlank(strDate) ? null : parse(strDate, getDatePattern()); } /** * 使用参数Format将字符串转为Date */ public static Date parse(String strDate, String pattern) throws ParseException { return StringUtils.isBlank(strDate) ? null : new SimpleDateFormat( pattern).parse(strDate); } /** * 在日期上增加数个整月 */ public static Date addMonth(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, n); return cal.getTime(); } public static String getLastDayOfMonth(String year, String month) { Calendar cal = Calendar.getInstance(); // 年 cal.set(Calendar.YEAR, Integer.parseInt(year)); // 月,因为Calendar里的月是从0开始,所以要-1 // cal.set(Calendar.MONTH, Integer.parseInt(month) - 1); // 日,设为一号 cal.set(Calendar.DATE, 1); // 月份加一,得到下个月的一号 cal.add(Calendar.MONTH, 1); // 下一个月减一为本月最后一天 cal.add(Calendar.DATE, -1); return String.valueOf(cal.get(Calendar.DAY_OF_MONTH));// 获得月末是几号 } public static Date getDate(String year, String month, String day) throws ParseException { String result = year + "- " + (month.length() == 1 ? ("0 " + month) : month) + "- " + (day.length() == 1 ? ("0 " + day) : day); return parse(result); } }
Date—>String
/** * Date转String * * @param count * @return */ @SuppressWarnings("unused") private String dateToString(Date date) { return (new SimpleDateFormat("yyyyMMdd")).format(date); }
private Date addDays(Date date,int n){ Calendar cal=Calendar.getInstance(); cal.setTime(date); //cal.add(Calendar.DATE, n);// n为增加的天数,可以改变的 cal.add(Calendar.DAY_OF_YEAR, n); //小时加1 date = cal.getTime(); return date; } /** * 根据一个日期,返回是星期几的字符串 * * @param date * @return */ private String getWeek(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); // int hour=c.get(Calendar.DAY_OF_WEEK); // hour中存的就是星期几了,其范围 1~7 // 1=星期日 7=星期六,其他类推 return new SimpleDateFormat("EEEE").format(c.getTime()); }