`
sgm881218
  • 浏览: 58479 次
社区版块
存档分类
最新评论

java实用工具(时间日期)

    博客分类:
  • java
阅读更多
时间工具:


package com.omg.web.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class DateUtil {

private static final Log LOG = LogFactory.getLog(DateUtil.class);

private static final SimpleDateFormat DF_YMD = new SimpleDateFormat(
"yyyyMMdd");

private static final SimpleDateFormat DF_YMDHMS2 = new SimpleDateFormat(
"yyyyMMddHHmmss");

private static final SimpleDateFormat DF_YMD2 = new SimpleDateFormat(
"yyyy-MM-dd");

private static final SimpleDateFormat DF_YMDHMS = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
// 11/23/2012 2:34:11 PM
private static final SimpleDateFormat DF_MDYHMS = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a", Locale.US);


private static final SimpleDateFormat DF_MDHM = new SimpleDateFormat("MM/dd HH:mm");

private static final SimpleDateFormat DF_YMDTHMS = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

/**
* 判断是否是当天
*
* @param date
* @return <p>
*         true: 是当天
*         </p>
*         <p>
*         false: 不是当天
*         </p>
*/
public static boolean compareCurrDay(Date date) {
if (null == date) {
return false;
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
Calendar curr = Calendar.getInstance();
if (cal.get(Calendar.YEAR) == curr.get(Calendar.YEAR)
&& cal.get(Calendar.MONTH) == curr.get(Calendar.MONTH)
&& cal.get(Calendar.DAY_OF_MONTH) == curr
.get(Calendar.DAY_OF_MONTH)) {
return true;
}
return false;
}

/**
* 获得当前时间
*
* @return yyyyMMdd
*/
public static String getDisplayYMD() {
try {
Calendar calendar = Calendar.getInstance();
return ((SimpleDateFormat) DF_YMD.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 获得date时间
*
* @param date
* @return yyyyMMdd
*/
public static String getDisplayYMD(Date date) {
try {
if (null == date) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return ((SimpleDateFormat) DF_YMD.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 获得date时间
*
* @param date
* @return yyyy-MM-dd HH:mm:ss
*/
public static String getDisplayYMDHMS(Date date) {
try {
if (null == date) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return ((SimpleDateFormat) DF_YMDHMS.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 获得date时间
*
* @param date
* @return MM/dd HH:ss
*/
public static String getMDHM(Date date) {
try {
if (null == date) {
return "";
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return ((SimpleDateFormat) DF_MDHM.clone()).format(calendar
.getTime());
} catch (Exception e) {
return "";
}
}


/**
* 获得当前时间
*
* @return yyyy-MM-dd
*/
public static String getDisplayYMD2() {
try {
Calendar calendar = Calendar.getInstance();
return ((SimpleDateFormat) DF_YMD2.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 获得date时间
*
* @param date
* @return yyyy-MM-dd
*/
public static String getDisplayYMD2(Date date) {
try {
if (null == date) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return ((SimpleDateFormat) DF_YMD2.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 获得当前date时间
*
* @return yyyyMMddHHmmss
*/
public static String getDisplayYMDHHMMSS() {
try {
Calendar calendar = Calendar.getInstance();
return ((SimpleDateFormat) DF_YMDHMS2.clone()).format(calendar
.getTime());
} catch (Exception e) {
return null;
}
}

/**
* 比较时间
*
* @param date
*            比较的时间点
* @param field
*            日历
* @param amount
*            时间量
* @return
*/
public static boolean compareTime(Date date, int field, int amount) {
try {
Calendar cal = Calendar.getInstance();
cal.add(field, amount);

Calendar c = Calendar.getInstance();
c.setTime(date);

return cal.before(c);
} catch (Exception e) {
return false;
}
}

/**
* 取得日期
*
* @param date
*            yyyy-MM-dd
* @return
*/
public static Date getDate(String date) {
try {
return ((SimpleDateFormat) DF_YMD2.clone()).parse(date);
} catch (ParseException e) {
return null;
}
}

/**
* 取得日期
*
* @param date
*            MM/dd/yyyy hh:mm:ss AM
* @return
*/
public static Date getDateByMDYHMS(String date) {
try {
return ((SimpleDateFormat) DF_MDYHMS.clone()).parse(date);
} catch (ParseException e) {
return null;
}
}

/**
* 取得日期
*
* @param date
*            yyyy-MM-dd HH:mm:ss
* @return
*/
public static Date getDate2(String date) {
try {
return ((SimpleDateFormat) DF_YMDHMS.clone()).parse(date);
} catch (ParseException e) {
return null;
}
}

/**
* 取得日期
*
* @param date
*            2012-03-29T11:25:11+08:00
* @return
*/
public static Date getDateTime(String date) {
try {
if (StringUtil.isBlank(date))
return null;

return ((SimpleDateFormat) DF_YMDTHMS.clone()).parse(date);
} catch (Exception e) {
return null;
}
}


/**
* 时间间隔
*
* @param d1
* @param d2
* @return
*/
public static String getCompareTime(Date d1, Date d2) {
try {
SimpleDateFormat DF = new SimpleDateFormat("Z");
Calendar calendar = Calendar.getInstance();
String zone = ((SimpleDateFormat) DF.clone()).format(calendar
.getTime());
//LOG.info("当前时区:" + zone);

if (!StringUtil.isBlank(zone) && zone.length() >= 5) {
Integer z = Integer.valueOf(zone.substring(1));
if (zone.indexOf("-") != -1) {
z += 800;
} else {
z = 800 - z;
}
int t1 = z/100;
int t2 = z%100;
calendar.add(Calendar.HOUR_OF_DAY, t1);
calendar.add(Calendar.MINUTE, t2);

}

//LOG.info("中国时间:" + DF_MDYHMS.format(calendar.getTime()));

long currTime = calendar.getTimeInMillis();
long time = currTime - d1.getTime();


long day = time/(1000*60*60*24);
if (day > 0) {
long year = day/365;
if (year > 0) {
return  year + "y";
}

long month = day/30;
if (month > 0) {
return month + "M";
}

return day + "d";
}

long hour = time/(1000*60*60);
if (hour > 0) {
return hour + "h";
}
return time/(1000*60) + "m";

} catch (Exception e) {
return "";
}
}

public static void main(String[] args) {
//System.out.println(DateUtil.getDisplayYMDHMS(DateUtil.getDateByMDYHMS("11/23/2012 2:34:11 PM")));


try {
SimpleDateFormat DF = new SimpleDateFormat("Z");
Calendar calendar = Calendar.getInstance();
calendar.set(2013, 2, 20, 22, 30, 13);
String zone = "-0430";
System.out.println("当前时区:" + zone);

if (!StringUtil.isBlank(zone) && zone.length() >= 5) {
Integer z = Integer.valueOf(zone);
z = 800 - z;
int t1 = z/100;
int t2 = z%100;
calendar.add(Calendar.HOUR_OF_DAY, t1);
calendar.add(Calendar.MINUTE, t2);

}

System.out.println("中国时间:" + DF_MDYHMS.format(calendar.getTime()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

    java开发实用工具

    5. **开发jar包**: 开发jar包通常包含各种预编译的Java类库,用于实现特定功能,比如HTTP客户端、JSON解析、日期时间处理等。这些jar包可以直接引入到项目中,避免了从零开始编写代码的繁琐过程。 除了上述组件,这...

    java实用文件小工具

    Java 实用文件小工具是一款专为IT从业者设计的高效文件管理解决方案,它包含了多项实用功能,如文件批量提取、删除以及将Oracle数据库的表结构导出为数据字典。这款工具极大地方便了日常的文件操作和数据库管理工作...

    时间日期工具类(包含java8新特性).zip

    总的来说,这个压缩包中的两个文件是针对日期时间处理的实用工具,结合了Java 8的新特性,旨在提高开发者在SpringBoot项目中处理日期时间的效率和灵活性。通过学习和使用这些工具类,我们可以更好地管理和操作应用...

    【强2】30个java工具类

    [工具类] XML 实用工具类 .java.txt [工具类] XML工具类2 .java.txt [工具类] 测试Mysql的最大连接数 .java.txt [工具类] 读取、打印输出、保存xml .java.txt [工具类] 分页split_page.jsp .jsp.txt [工具类] 获得...

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    - `java.time.LocalDate`和`java.time.LocalDateTime`则提供了更加友好的API,可以方便地创建日期和日期时间对象。 3. **时间差计算**: - 要计算两个日期之间的差值,通常会先将它们转换为毫秒,然后计算两者...

    30个java工具类

    [工具类] XML 实用工具类 .java.txt [工具类] XML工具类2 .java.txt [工具类] 测试Mysql的最大连接数 .java.txt [工具类] 读取、打印输出、保存xml .java.txt [工具类] 分页split_page.jsp .jsp.txt [工具类] 获得...

    牛逼的java常用工具类

    4. **日期和时间API**:Java 8引入了新的日期和时间API,位于`java.time`包下,包括LocalDate、LocalTime、LocalDateTime和ZonedDateTime等类,它们提供了更强大、更直观的时间处理能力,取代了旧的`java.util.Date`...

    java实用工具类

    - `Date`类:是Java中处理日期和时间的基础类。它可以表示从1970年1月1日00:00:00 GMT到当前时间的毫秒数。虽然`Date`类在早期版本的Java中存在很多过时的方法,但在JDK 1.1之后引入了`Calendar`类来改善日期和时间...

    java时间工具类,基本上全面的包括常用的关于时间的处理

    8. **日期时间的克隆和复制**:有时我们需要创建Date对象的副本,而不改变原始对象,`cloneDate`方法可以实现这一点。 9. **线程安全**:如果工具类被设计为线程安全的,那么它可能包含了同步方法或使用了线程局部...

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

    Java 时间工具类

    ### Java 时间工具类详解 在Java开发中,处理日期与时间是常见的需求之一。...通过以上介绍,我们可以看出`DataUtil`工具类为Java开发者提供了强大而灵活的时间日期处理能力,大大简化了日常开发中的日期时间操作。

    java各种工具类-非常齐全

    除此之外,第三方库如Apache Commons IO提供了更多的实用工具,如文件复制、删除、查找等。 4. **XML读写工具类**: Java标准库中的`javax.xml`包提供了基础的XML处理,但实际开发中更常用的是`DOM`、`SAX`或`JAXB...

    java2实用教程

    6.2 CALENDAR类:介绍了Calendar类作为日期时间处理的抽象类。 6.3 MATH类:展示了java.lang.Math类中提供的各种数学运算的静态方法。 第七章:AWT工具集简介 介绍了Java的抽象窗口工具集(AWT),它用于创建基本的...

    Java Swing 日期时间组件

    总的来说,`Java Swing 日期时间组件`如`DateChooser`,为Java桌面应用程序提供了用户友好的日期选择功能,使得用户能够直观地输入或选择日期,同时开发者可以方便地获取和处理这些数据。无论是商业应用还是个人项目...

    28个java常用的工具类

    5. **`java.util.Date`** 和 **`java.time.*`** (Java 8+): 传统的日期/时间处理类,以及Java 8引入的更现代、更易用的时间API。 6. **`java.util.HashMap`** 和 **`java.util.Map`** 接口: 存储键值对的数据结构。...

    java常用工具类

    Java内置的日期时间API(如`java.util.Date`和`java.util.Calendar`)在处理日期和时间时较为复杂。为了简化操作,`java.time`包引入了新的API,如`LocalDate`、`LocalTime`和`LocalDateTime`。此外,`java.text....

    Java常用工具类

    在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、线程管理等。此外,还有一些第三方库,如Apache Commons Lang、Guava等,提供了更丰富的功能。 1. **java.util包**...

    java utils 工具类

    - `Google Guava`:包含了集合操作、缓存、并发、I/O等多种实用工具。 - `Java自身的util包`:如`Arrays`, `Collections`, `Math`, `Objects`等,提供了基础的工具方法。 3. **JavaUtils中的常见功能**: - **...

    Java各种工具类

    **java.util**: 这是最核心的工具包之一,包含了集合框架(如ArrayList、LinkedList、HashSet、HashMap等)、日期时间API(如Date、Calendar、LocalDate等)、事件模型、线程管理、随机数生成器以及多种实用工具类...

Global site tag (gtag.js) - Google Analytics