package cn.itcast.oa.util;

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

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class DateUtils {
/**
* 将指定字符串转换成日期
*
* @param date
* String 日期字符串
* @param datePattern
* String 日期格式
* @return Date
*/
public static java.util.Date getFormatDate(String date, String datePattern) {
SimpleDateFormat sd = new SimpleDateFormat(datePattern);
return sd.parse(date, new java.text.ParsePosition(0));
}

/**
* 将指定日期对象转换成格式化字符串
*
* @param date
* Date XML日期对象
* @param datePattern
* String 日期格式
* @return String
*/
public static String getFormattedString(Date date, String datePattern) {
SimpleDateFormat sd = new SimpleDateFormat(datePattern);

return sd.format(date);
}

/**
* 将指定XML日期对象转换成格式化字符串
*
* @param xmlDate
* Date XML日期对象
* @param datePattern
* String 日期格式
* @return String
*/
public static String getFormattedString(XMLGregorianCalendar xmlDate,
String datePattern) {
SimpleDateFormat sd = new SimpleDateFormat(datePattern);

Calendar calendar = xmlDate.toGregorianCalendar();

return sd.format(calendar.getTime());
}

/**
* 将指定XML日期对象转换成日期对象
*
* @param xmlDate
* Date XML日期对象
* @param datePattern
* String 日期格式
* @return Date
*/
public static Date xmlGregorianCalendar2Date(XMLGregorianCalendar xmlDate) {
return xmlDate.toGregorianCalendar().getTime();
}

public static String getThisYear() {
// 获得当前日期
Calendar cldCurrent = Calendar.getInstance();
// 获得年月日
String strYear = String.valueOf(cldCurrent.get(Calendar.YEAR));
return strYear;
}

public static XMLGregorianCalendar convert2XMLCalendar(Calendar calendar) {
try {
DatatypeFactory dtf = DatatypeFactory.newInstance();
return dtf.newXMLGregorianCalendar(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH)+1,
calendar.get(Calendar.DAY_OF_MONTH),
calendar.get(Calendar.HOUR),
calendar.get(Calendar.MINUTE),
calendar.get(Calendar.SECOND),
calendar.get(Calendar.MILLISECOND),
calendar.get(Calendar.ZONE_OFFSET)/(1000*60));

} catch (DatatypeConfigurationException e) {
e.printStackTrace();
return null;
}
}

// 获取当天时间
public static java.sql.Timestamp getNowTime(String dateformat) {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
String dateString = dateFormat.format(now);
SimpleDateFormat sd = new SimpleDateFormat(dateformat);
Date dateFormt = sd.parse(dateString, new java.text.ParsePosition(0));
java.sql.Timestamp dateTime = new java.sql.Timestamp(dateFormt
.getTime());

return dateTime;
// return hehe;
}

// 获取指定时间
public static java.sql.Timestamp getNowNewTime(String date,String dateformat){
//Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
dateFormat.parse(date, new java.text.ParsePosition(0));

// String dateString= dateFormat.format(date);
Date dateFormt= dateFormat.parse(date, new java.text.ParsePosition(0));
java.sql.Timestamp dateTime = new java.sql.Timestamp(dateFormt.getTime());

return dateTime;
// return hehe;
}
/**
* @param 含有yyyy-MM-dd'T'hh:mm:ss.SSS格式的时间转换.
* @return
*/
public static String getTFormatString(String tdate) {
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String str ="";
try {
java.util.Date date = format1.parse(tdate);
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str = format2.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return str;
}

public static void main(String[] args) {
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
String date = "20110202";
System.out.println(sd.parse(date, new java.text.ParsePosition(0)));
System.out.println(getBefore2HourDate());
}
//获取当前时间前2个小时的时间。
public static String getBefore2HourDate(){
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR_OF_DAY, -2); // 目前時間加3小時
return df.format(c.getTime());

}

/**
*
* @param time1 当前时间
* @param time2 比较时间
* @return 如果time1比time2大gap分钟,则返回true;
*/
public static boolean compareDateTime(Date time1, Date time2, int gap) {
return time1.getTime() - time2.getTime() > gap * 60 * 1000;
}
}

java日期操作的工具类时间格式的转换的更多相关文章

  1. java日期操作常用工具

    java日期操作常用工具 package com..util; import java.sql.Timestamp; import java.text.SimpleDateFormat; import ...

  2. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

  3. java日期操作 大全

    先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http://iamin.blogdriver.com/iamin/847990.html ));             }       ...

  4. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

  5. java自带BASE64工具进行图片和字符串转换

    java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  6. java自带BASE64工具进行图片和字符串转换【转】

    java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  7. Java POI操作Excle工具类

    用到了jxl.jar和poi.jar 一些基本的操作Excel的操作方法: import java.io.File; import java.io.FileInputStream; import ja ...

  8. JAVA 日期操作

    1.用java.util.Calender来实现 Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); Sys ...

  9. java日期操作

    //字符串转日期 public static void dt7() throws ParseException { String str_date="2015---08---08" ...

随机推荐

  1. 【Hadoop】HDFS笔记(二):HDFS的HA机制和Federation机制

    HA解决了HDFS的NameNode的单点问题: Federation解决了整个HDFS集群中只有一个名字空间,并且只有单独的一个NameNode管理所有DataNode的问题. 一.HA机制(Hig ...

  2. Flutter实战视频-移动电商-09.首页_项目结构建立和获取数据

    09.首页_项目结构建立和获取数据 在config下创建service_url.dart 用来配置我们后端接口的配置文件 一个变量存 接口地址,一个接口方法地址 所有后天请求数据的方法都放在这个文件夹 ...

  3. 1-2关键字 & 2-1什么是变量

    2-1什么是变量 驼峰第一个字母首字母小写后面字母首字母大写 Pascal命名规范:

  4. struts2 中的 addActionError 、addFieldError、addActionMessage的方法

    addActionError .addFieldError.addActionMessage都是ActionSupport的方法 一.addActionError("错误内容"): ...

  5. React 从入门到进阶之路(六)

    之前的文章我们介绍了 React 表单事件 键盘事件 事件对象以及 React中 的 ref 获取 dom 节点 .双向数据绑定.接下来我们将介绍 React 表单详解 约束性和非约束性组件 inpu ...

  6. input输入框修改后自动跳到最后一个字符

    <input class="m-form-control" onpaste="return false" placeholder="直播间名称& ...

  7. java 三大基本特征

    java中的面向对象的三大基本特征是:[封装].[继承].[多态] 封装:对象要有一个明确的边界:边界的划分(对象各司其职.对象的粒度.对象的可重用性) 属性(bean.pojo):私有的privat ...

  8. Mybatis分页中遇到的坑2

    站在巨人的肩膀上    http://crocutax.com/blog/mybatis-one-to-many-nestes-query-and-page-query Mybatis一对多嵌套查询和 ...

  9. [题解]luogu_AT1224_JOIOJI

    https://www.cnblogs.com/fengzhiyuan/p/7588443.html 不会map,有点菜 1.要想知道三个字母出现次数相等, 为J [ i ]-J [ j ]== O[ ...

  10. python学习之序列化

    序列化:不同编程语言之间传递对象需要序列化成标准格式,有XML /JSON,json格式化为字符串,UTF-8编码,速度快,切实标准格式.JSON 和 Python内置的数据类型对应如下: JSON ...