`
snoopy7713
  • 浏览: 1124854 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

JAVA各种时间类型的取得

    博客分类:
  • java
阅读更多
package com.hello.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

import org.apache.log4j.Logger;

public class DateUtil {

	private static Logger log = Logger.getLogger(DateUtil.class);

	private static String defaultDatePattern = null;

	private static String timePattern = "HH:mm";

	public static Date getSystemTime() {
		Calendar now = Calendar.getInstance();
		return now.getTime();

	}

	public static synchronized String getDatePattern() {
		Locale locale = Locale.CHINA; // LocaleContextHolder.getLocale();

		try {
			defaultDatePattern = ResourceBundle.getBundle("yyyy-MM-dd", locale).getString("date.format");
		} catch (MissingResourceException mse) {
			defaultDatePattern = "yyyy-MM-dd";
		}

		return defaultDatePattern;
	}

	public static final String getDate(Date aDate) {
		SimpleDateFormat df = null;
		String returnValue = "";

		if (aDate != null) {
			df = new SimpleDateFormat(getDatePattern());
			returnValue = df.format(aDate);
		}

		return (returnValue);
	}

	public static final Date convertStringToDate(String aMask, String strDate) {
		SimpleDateFormat df = null;
		Date date = null;
		df = new SimpleDateFormat(aMask);

		if (log.isDebugEnabled()) {
			log.debug("converting '" + strDate + "' to date with mask '" + aMask + "'");
		}

		try {
			date = df.parse(strDate);
		} catch (ParseException pe) {
			log.error("ParseException: " + pe);
		}

		return (date);
	}

	public static String getTimeNow(Date theTime) {
		return getDateTime(timePattern, theTime);
	}

	public static Calendar getToday() throws ParseException {
		Date today = new Date();
		SimpleDateFormat df = new SimpleDateFormat(getDatePattern());

		// This seems like quite a hack (date -> string -> date),
		// but it works ;-)
		String todayAsString = df.format(today);
		Calendar cal = new GregorianCalendar();
		cal.setTime(convertStringToDate(todayAsString));

		return cal;
	}

	public static Date getMonday(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		if (c.get(Calendar.DAY_OF_WEEK) == 1) {
			date = DateUtil.addDays(date, -7);
			c.setTime(date);
		}

		c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
		String mondayString = DateUtil.format(c.getTime(), "yyyy-MM-dd");
		mondayString = mondayString + " 00:00:00";
		return convertStringToDate("yyyy-MM-dd HH:mm:ss", mondayString);
	}

	public static Date getFriday(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
		String fridayString = format(c.getTime(), "yyyy-MM-dd");
		fridayString = fridayString + " 23:59:59";
		return convertStringToDate("yyyy-MM-dd HH:mm:ss", fridayString);

	}

	public static final String getDateTime(String aMask, Date aDate) {
		SimpleDateFormat df = null;
		String returnValue = "";

		if (aDate == null) {
			log.error("aDate is null!");
		} else {
			df = new SimpleDateFormat(aMask);
			returnValue = df.format(aDate);
		}

		return (returnValue);
	}

	public static final String convertDateToString(Date aDate) {
		return getDateTime(getDatePattern(), aDate);
	}

	public static Date convertStringToDate(String strDate) {
		Date aDate = null;

		try {
			if (log.isDebugEnabled()) {
				log.debug("converting date with pattern: " + getDatePattern());
			}

			aDate = convertStringToDate(getDatePattern(), strDate);
		} catch (Exception pe) {
			log.error("Could not convert '" + strDate + "' to a date, throwing exception");

		}

		return aDate;
	}

	public static int dayDiff(Date first, Date second) {

		long msPerDay = 1000 * 60 * 60 * 24;
		long diff = (first.getTime() / msPerDay) - (second.getTime() / msPerDay);

		Long convertLong = new Long(diff);
		return convertLong.intValue();
	}

	public static long dayDiffMilSecond(Date first, Date second) {

		long diff = first.getTime() - second.getTime();
		Long convertLong = new Long(diff);
		return convertLong;
	}

	public static String format(Date date, String pattern) {
		if (date == null)
			return "";
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
		return formatter.format(date);
	}

	static public final Date addDays(Date target, int days) {
		long msPerDay = 1000 * 60 * 60 * 24; // 一天的毫秒数
		long msTarget = target.getTime(); // 返回从一个特定的日期(1970。。)到现在经过的毫秒数。
		long msSum = msTarget + (msPerDay * days);
		Date result = new Date();
		result.setTime(msSum); // 根据毫秒设置日期
		return result;
	}

	public static Date beforeDays(Date target, int days) {
		long msPerDay = 1000 * 60 * 60 * 24; // 一天的毫秒数
		long msTarget = target.getTime(); // 返回从一个特定的日期(1970。。)到现在经过的毫秒数。
		long msSum = msTarget - (msPerDay * days);
		Date result = new Date();
		result.setTime(msSum); // 根据毫秒设置日期
		return result;
	}

	public static Date formatString(String time, String format) {
		try {
			SimpleDateFormat formater = new SimpleDateFormat(format);
			return formater.parse(time);
		} catch (Exception e) {
			return null;
		}
	}

	public static Date getFirstDateOfMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return calendar.getTime();
	}

	public static Date getLastlyDateOfMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		int month = calendar.get(Calendar.MONTH);
		calendar.set(Calendar.MONTH, month + 1);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		calendar.add(Calendar.DAY_OF_MONTH, -1);
		return calendar.getTime();
	}

	public static Date getFirstDateOfNextMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		int month = calendar.get(Calendar.MONTH);
		calendar.set(Calendar.MONTH, month + 1);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return calendar.getTime();

	}

	public static String getCurrentDayPath() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
		Date now = new Date();
		String filePath = sdf.format(now) + "/";
		sdf = new SimpleDateFormat("MM");
		filePath += sdf.format(now) + "/";
		sdf = new SimpleDateFormat("dd");
		filePath += sdf.format(now) + "/";

		return filePath;
	}
}
 

 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    java源码包4

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    JAVA上百实例源码以及开源项目

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    JAVA上百实例源码以及开源项目源代码

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    java源码包3

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    社会上常用的Java试题库

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何...4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期

    java源码包2

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    Java开发详解.zip

    031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf 031109_【第11章:Java常用类库】_NumberFormat笔记.pdf 031110_【第11章:Java常用类库...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...

    JAVA面试题最全集

    日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    必须要时从Java SE API的源代码分析,了解各种语法在Java SE API中如何应用。  《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 ...

    java上传文件实例

    //更改文件名,取得当前上传时间的毫秒数值 //Calendar calendar = Calendar.getInstance(); Date date = new Date(); String filename = String.valueOf((1900+date.getYear()))+String.valueOf((date.getMonth()+...

    java面试题大全--java基础,struts,spring,ejb等

    4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出...

    Java序列化框架,可以任意Java对象序列化为字节数组并且完成反序列化 支持任意Java类型.zip

    时间序列建模基本步骤是:①用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。②根据动态数据作相关图,进行相关分析,求自相关函数。相关图能显示出变化的趋势和周期,并能发现跳点和拐点。跳点是指...

    Java数据库查询结果的输出

    字段名 类型 Wno(职工号) VARCHAR Wname(职工名) VARCHAR Sex(性别) VARCHAR Birthday(出生日期) DATE Wage(工资) FLOAT  要连接此数据库,需使用java.sql包中的类DriverManager。此类是用于管理...

    mysql取得datetime类型的数据,后面会跟个.0的实现方法

    mysql的数据类型是datetime,数据库里存的数据是2015-01-19 05:02:02,传到java这里变成了2015-01-19 05:02:02.0,多了个尾巴.0, 可以通过以下集中方法来format显示格式: 1、regtime的类型是date型的才能这样用,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...

    超爽的自学课件(java)

    大家也会从中了解到是什么使得Java如此特别,它为什么取得了这么大的成功,以及与面向对象的分析与设计有关的问题。 <br>(2) 第2章:一切都是对象 本章将大家带到可以着手写自己的第一个Java程序的地方,所以...

    java面试题

    答:int是java的原始数据类型,Integer是java为int提供的封装类,java为每个原始数据类型都提供了封装类。 String和StringBuffer的区别? 答:String是不可变的对象,每次对String类型进行改变都相当于产生了一个新...

Global site tag (gtag.js) - Google Analytics