java中经常使用的日期格式化(全)

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 * 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss
 *
 * @author Arthur(user_006)
 * @version 1.0.0 2010/04/24 14:00(星期六)
 */
public class TimerUtil {

	/**
	 * 获取当前的日期 , 默认格式
	 *
	 * @return 当前的日期
	 */
	public synchronized static Date getCurrentCalendar() {

		Calendar calendar = Calendar.getInstance();
		return calendar.getTime();
	}

	/**
	 * 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24
	 *
	 * @return
	 */
	public synchronized static String getCurrentDate() {

		Calendar calendar = Calendar.getInstance();

		StringBuffer sb = new StringBuffer();

		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));
		return sb.toString();
	}

	/**
	 * 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD
	 *
	 * @param date
	 *            日期的字符串形式
	 *
	 * @return Data类型的日期
	 */
	public synchronized static Date convertToDate(String date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-DD");

		try {

			return format.parse(date);

		} catch (ParseException e) {

			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 把日期转换为指定的格式
	 *
	 * @param date
	 *            要转换的日期
	 * @param pattern
	 *            转换的格式
	 * @return
	 */
	public synchronized static Date format(Date date, String pattern) {

		if (pattern != null && pattern.trim().length() > 0) {

			DateFormat format = new SimpleDateFormat(pattern);

			String stringDate = format.format(date);

			return TimerUtil.convertToDate(stringDate);
		}
		return null;
	}

	/**
	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
	 *
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToString(Date date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return format.format(date);
	}

	/**
	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss
	 *
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToStrShort(Date date) {

		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		return format.format(date);
	}

	/**
	 * 将日期转换为字符串 , 格式yyyyMMddHHmmss
	 *
	 * @param date
	 *            要转换的日期
	 * @return
	 */
	public synchronized static String convertToString2(Date date) {
		DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		return format.format(date);
	}

	/**
	 * 将日期转换为指定格式的字符串
	 *
	 * @param date
	 *            要转换的日期
	 * @param formatText
	 *            转换的格式
	 * @return
	 */
	public synchronized static String convertToString(Date date,
			String formatText) {

		DateFormat format = new SimpleDateFormat(formatText);

		Calendar calendar = Calendar.getInstance();

		StringBuffer sb = new StringBuffer();

		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));

		return format.format(date);
	}

	/**
	 * 获取本周一的日期
	 *
	 * @return
	 */
	public synchronized static Date getMondayOFWeek() {

		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一開始,若须要依据系统时区自己主动获取,则採用下边的方式

		return calendar.getTime();
	}

	/**
	 * 获取本周日日期
	 *
	 * @return
	 */
	public synchronized static Date getCurrentWeekday() {

		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 *
	 * @return
	 */
	public synchronized static Date getPreviousWeekday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 *
	 * @return
	 */
	public synchronized static Date getPreviousMonday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 *
	 * @return
	 */
	public synchronized static Date getNextWeekday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取上周日的日期
	 *
	 * @return
	 */
	public synchronized static Date getNextMonday() {

		Calendar calendar = Calendar.getInstance();
		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);
		calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数
		return calendar.getTime();
	}

	/**
	 * 获取当前日期与本周周日之间相差的天数
	 *
	 * @return
	 */
	public synchronized static int getCurrentPlus() {

		Calendar calendar = Calendar.getInstance();
		int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1
		return 7 - days;
	}

	public synchronized static int getCurrentYear() {

		Calendar calendar = Calendar.getInstance();
		return calendar.get(Calendar.YEAR);
	}

	/**
	 * 返回指定日期的当月第一天
	 *
	 * @param date
	 * @return
	 */
	@SuppressWarnings("static-access")
	public synchronized static Date getFirstDayInMonth(Date date) {

		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(calendar.DATE, 1);
		return calendar.getTime();
	}

	/**
	 * 返回指定日期的当月最后一天
	 *
	 * @param date
	 * @return
	 */
	@SuppressWarnings("static-access")
	public synchronized static Date getLastDayInMonth(Date date) {

		Calendar calendar = Calendar.getInstance();

		calendar.setTime(date);
		calendar.add(calendar.MONTH, 1);
		calendar.set(calendar.DATE, 1);
		calendar.add(calendar.DATE, -1);

		return calendar.getTime();
	}

	/*
	 * 计算两个日期之间的天数
	 */
	public static int getDaysBetween(Calendar d1, Calendar d2) {
		if (d1.after(d2)) {
			java.util.Calendar swap = d1;
			d1 = d2;
			d2 = swap;
		}
		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
		int y2 = d2.get(Calendar.YEAR);
		if (d1.get(Calendar.YEAR) != y2) {
			d1 = (Calendar) d1.clone();
			do {
				days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数
				d1.add(Calendar.YEAR, 1);
			} while (d1.get(Calendar.YEAR) != y2);
		}
		return days;
	}
	/*
	 * 计算两个日期之间的时间
	 */
	public static String getGapTime(Date createTime) {
		// TODO Auto-generated method stub
		Calendar d2 = Calendar.getInstance();
		Calendar d1 = Calendar.getInstance();
		d1.setTime(createTime);
		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
		if (days < 1) {
			int hour = d2.get(Calendar.HOUR_OF_DAY)
					- d1.get(Calendar.HOUR_OF_DAY);
			if (hour < 1) {
				int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);
				if (munites == 0) {
					return "刚刚";
				} else {
					return munites + "分钟前";
				}
			} else {
				return hour + "小时前";
			}

		} else {
			return days + "天前";
		}
	}

	//加天数
	public static String addDays(int day){
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DAY_OF_MONTH, day);
		StringBuffer sb = new StringBuffer();
		sb.append(calendar.get(Calendar.YEAR)).append("-");
		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));
		return sb.toString();
	}

	//加年份
	public static String addYears(String now, int year) throws ParseException{
		  Calendar fromCal=Calendar.getInstance();

		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
	   Date date=dateFormat.parse(now);
	   fromCal.setTime(date);
	   fromCal.add(Calendar.YEAR, year);

	   return dateFormat.format(fromCal.getTime());
	 }

	//加天数(特定时间)
	public static String addDate(String now, int day) throws ParseException{
		  Calendar fromCal=Calendar.getInstance();

		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
	   Date date=dateFormat.parse(now);
	   fromCal.setTime(date);
	   fromCal.add(Calendar.DATE, day);

	   return dateFormat.format(fromCal.getTime());
	 }

	/**
	 * 格多少时间
	 * @throws ParseException
	 */

	@SuppressWarnings("deprecation")
	public static void main(String[] args) throws ParseException {
		System.out.println(TimerUtil.addYears("2008-12-01",7));
	}
		/*public static void main(String[] args) {
			   String createDate = "2008-12-01";
			   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
			   try {
			    Date date = sdf.parse(createDate);
			    Calendar cl = Calendar.getInstance();
			    cl.setTime(date);
			    cl.add(Calendar.DATE,31);
			    String temp = "";
			    temp = sdf.format(cl.getTime());
			    System.out.println(temp);
			   } catch (ParseException e) {
			    // TODO Auto-generated catch block
			    e.printStackTrace();
			   }
			}*/
}
时间: 2024-11-16 10:04:57

java中经常使用的日期格式化(全)的相关文章

Java中的时间和日期(下)

转载请注明出处:http://blog.csdn.net/wl9739/article/details/51882913 在上篇文章Java中的时间和日期(上)里面,简单介绍了Java中的Date类,Calendar类以及用于格式化的SimpleDateFormater类.使用这些的时候我们会明显地感受到其中的不便之处,比如,Calendar类的月份是从0开始计数的:日期格式输出不够友好,很多情况下都需要使用SimpleDateFormater类来格式化:一些简单得日期计算也比较麻烦等等.所以就

Java中对两个日期时间的比较方法

在Java中比较时间或者日期基本上都要转换成Date类型,本文主要提供三个方法,compareTo.getTime.after:另外还提供计算两天之间的天数,以及根据当前天获取后一天的日期的方法. package com.raipeng.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; i

Java中的时间和日期(上)

自从JDK 1.0开始,Java就提供了Date来处理时间和日期,作为老古董自然有很多东西是过时的.然后出现了Calendar来解决了很多问题,但是Calendar使用比较复杂,并且有些反人类的地方.直到Java 8的出现,它吸收了Joda-Time库的经验,使得Java处理时间和日期变得比较"人性化"了.本篇就来谈谈Java中的Date.Calendar,以及SimpleDateFormat的使用.下一篇再对比一下Java 8中的日期处理. 古老的Date 查看一下Date类的源码,

Java语言学习(5)-Java中基础封装类(日期、时间类)

日期和时间封装类 1. Data类 Java日期和时间采用Data类.Data类在java.util包中. Data类构造函数: 1)       Data()   采用当前时间初始化对象: 2)       Data(long millisec)   采用1970年1月1日起时间毫秒数来初始化对象. Data类的方法: 1)       boolean after(Data d).boolean before(Data d) Data对象和参数指定日期较早晚,返回boolean值. 2)   

细谈Java中的时间与日期

Data类 java.util.Date类实在Java之中获得日期时间操作的最简单的一个程序类,这个类可以直接通过实例化Date类对象的形式获取当前的日期时间. 范例:获取当前的日期时间 import java.util.Date; public class Demo { public static void main(String args[]) { System.out.println(new Date()); } } 程序执行结果: Fri Mar 27 19:12:56 CST 2020

Java中如何判断一个日期字符串是否是指定的格式

判断日期格式是否满足要求 import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; public class Test2{public static void main(String[] args) { String date_string="201609";// 利用java中的SimpleDateFormat类,指定日期格式,注意yyyy,MM大小写// 这里的日

easyui datagrid 中序列化后的日期格式化

1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. <script type="text/javascript"> $(function () { $("#tdList").datagrid({ url: "/Admin/Dictionary/Index", title: "数据

java中计算两个日期之间天数的程序设计。

1 //用java编写出一个以下方法计算两个日期之间天数的程序设计. 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class Demo4 { 7 public static void main(String[] args) { 8 try { 9 System.out.println(相差天数("2016-11-30", "2016-5-31"));

java中格式化输出大神Formatter简历

一.干嘛的?(作用) 在java中,所有新的格式化功能都有formatter类处理.可以将formatter看作一个翻译器,它将你的格式化字符串与数据翻译成需要的结果.比如很多地方格式输出都有用到,像我们在超市购物付款时候打印的购物小票啊,所以还是很实用的. 二.籍贯(所在库) java中的Formatter类位于java.util.Formatter中,所以需要用到的时候只要import进来就可以用了.注意,请选择1.5及以上版本的编译器,否则会出现"The method format(Str