日期格式化类型大总结 /把字符串类型的日期变成指定的日期格式/格式化字符串类型的日期/ 获取字符串类型的年、月、日以及该月有多少天

/**
	 * 返回格式化后的日期信息。
	 * 
	 * @param date
	 * @param format
	 * @return
	 */
	public static String getDateStr(Date date, String pattern) {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return sdf.format(date);
	}
//把字符串类型的日期变成指定的日期格式
	public static Date getDateFromStr(String dateStr, String pattern)
			throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		Date date = sdf.parse(dateStr);
		return date;
	}
	//格式化字符串类型的日期,返回字符串类型日期
	public static String getStrFromStr(String dateStr, String pattern)
			throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		Date date = sdf.parse(dateStr);
		SimpleDateFormat sdf1 = new SimpleDateFormat(pattern);
		String dates=sdf1.format(date);
		return dates;
	}
	//
	public static String getTimeDifferenceBetwennTwoDate(Date startDate,
			Date endDate) {
		long end = endDate.getTime();
		long start = startDate.getTime();
		long hours = (end - start) / (3600 * 1000);
		long mins = ((end - start) - hours * (3600 * 1000)) / (1000 * 60);
		long secs = (((end - start) - hours * (3600 * 1000)) - (1000 * 60 * mins)) / 1000;
		String timeDifference = hours + "-" + mins + "-" + secs;
		return timeDifference;
	}

	/**
	 * 获取当前日期Date类型
	 */
	public static Date getNowDate() {
		return new Date();
	}

	/**
	 * 根据传入的date类型的值获取一个长整型的参数
	 * 
	 * @param date
	 * @return
	 */
	public static long getLongFromDate(Date date) {
		long time = date.getTime();
		return time;
	}

	/**
	 * 根据插入的日期字符串和匹配类型获取一个长整型的参数
	 * 
	 * @param dateStr
	 * @param pattern
	 * @return
	 */
	public static long getLongFromStr(String dateStr, String pattern) {
		Date date = null;
		try {
			date = getDateFromStr(dateStr, pattern);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		long time = getLongFromDate(date);
		return time;
	}

	/**
	 * 根据天数和现在时刻获取Date 类型的若干天以前的日期
	 * 
	 * @param now
	 *            现在
	 * @param serveral
	 * @return
	 */
	public static Date getServeralDaysBeforeNowTime(Date now, Integer serveral) {
		long nowTime = now.getTime();
		long serveralDaysBeforeNowTime = nowTime - (86400000 * serveral);
		Date date = new Date(serveralDaysBeforeNowTime);
		return date;
	}

	/**
	 * 根据现在的时间生成2017/11/10 00:11:23 格式的字符串
	 * 
	 * @param now
	 *            现在
	 * @param serveral
	 * @return
	 */
	public static String getNowDateStringByAlert() {
		String pattern = "yyyy/MM/dd HH:mm:ss";
		return getDateStr(new Date(), pattern);
	}

	/**
	 * 获取现在时间
	 * 
	 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getStringDate() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateString = formatter.format(currentTime);
		return dateString;
	}
	/**
	 * 获取年
	 * 
	 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getStringYear() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		String dateString = formatter.format(currentTime);
		String dateStr=dateString.split("-")[0];
		return dateStr;
	}
	/**
	 * 获取月
	 * 
	 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getStringMouth() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		String dateString = formatter.format(currentTime);
		String dateStr=dateString.split("-")[1];
		return dateStr;
	}
	/**
	 * 获取日
	 * 
	 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getStringTaday() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		String dateString = formatter.format(currentTime);
		String dateStr=dateString.split("-")[2];
		return dateStr;
	}
	/**
	 * 获取该月天数
	 * 
	 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getStringTadaysNum() {
		Date currentTime = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		String dateString = formatter.format(currentTime);
		String dateStr=dateString.split("-")[2];
		if(dateStr.equals("01") || dateStr.equals("03") || dateStr.equals("05") || dateStr.equals("07") || dateStr.equals("08") || dateStr.equals("10") || dateStr.equals("12")) {
			return "31";
		}else if(dateStr.equals("04") || dateStr.equals("06") || dateStr.equals("09") || dateStr.equals("11")){
			return "30";
		}else {
			int y=Integer.parseInt(dateString.split("-")[0]);
			if(y%4==0 && y%100!=0 || y%400==0) {
				return "29";
			}else {
				return "28";
			}
		}
	}
	

其实任意日期类型   任意日期格式都能够相互转换,留下这些记录供以后自己如果遗忘再来观看,嘿嘿。

你可能感兴趣的:(日期格式化,java,c++)