import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat; /**
* @author Simon Lv
* @since 2012-6-10
*/
public class DateUtils { public static final String YYMMDD = "yyMMdd";
public static final String YYYYMMDD = "yyyyMMdd";
public static final String PATTERN_DATETIME = "yyyy-MM-dd HH:mm:ss";
public static final String PATTERN_DATETIME_M = "yyyy-MM-dd HH:mm";
public static final String PATTERN_DATE = "yyyy-MM-dd";
public static final String PATTERN_MONTH = "yyyy-MM";
public static final String YEAR = "yyyy";
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss"); public static DateTime toDateTime(String dateTime) {
if (StringUtils.isBlank(dateTime)) {
return null;
}
return DateTimeFormat.forPattern(PATTERN_DATETIME).parseDateTime(dateTime);
} public static DateTime strToDateTime(String dateTime) {
if (StringUtils.isBlank(dateTime)) {
return null;
}
return DateTimeFormat.forPattern(PATTERN_DATE).parseDateTime(dateTime);
} public static String toString(DateTime dateTime) {
return dateTime.toString(PATTERN_DATETIME);
} public static String dateToString(DateTime dateTime) {
return dateTime.toString(YEAR);
}
public static String dateTimeToString(DateTime dateTime) {
return dateTime.toString(PATTERN_DATE);
} public static String toString(String dateTime, String pattern) {
return new DateTime(dateTime).toString(pattern);
} public static String toString(LocalDate localDate, String pattern) {
if (localDate == null) {
return null;
}
return localDate.toString(pattern);
} public static String todayToString() {
return new LocalDate().toString(YYMMDD);
}
public static String todayToStringYear() {
return new LocalDate().toString(YEAR);
}
public static String todayToString2() {
return new LocalDate().toString(YYYYMMDD);
}
public static String todayToYYYYMMDDStr() {
return new LocalDate().toString(PATTERN_DATE);
}
public static String todayToChinaStr() {
Calendar calendar =Calendar.getInstance();
StringBuffer sb = new StringBuffer();
sb.append(calendar.get(Calendar.YEAR)).append("年")
.append(calendar.get(Calendar.MONTH)+1).append("月")
.append(calendar.get(Calendar.DAY_OF_MONTH)).append("日")
.append(calendar.get(Calendar.HOUR)).append("时")
.append(calendar.get(Calendar.MINUTE)).append("分"); return sb.toString();
} /**
* 将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-dd HH:mm:ss)
*
* @param createTime
* @return
*/
public static String getNormalDateFromWebChat(String createTime) {
Long msgCreateTime = Long.parseLong(createTime) * 1000; return DATE_FORMAT.format(new Date(msgCreateTime));
}
/**
* 将long型时间格式转换为字符格式
*
* @return 返回字符串格式 yyyy-MM-dd HH:mm:ss
*/
public static String long2LongString(long date){
if(date == -99){
return "-";
}
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATETIME);
return sdf.format(new Date(date));
} public static String long2DateString(Long date, String pattern){
if(date == null || date.longValue() ==0){
return "-";
}
if(date.longValue() == -99){
return "";
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(new Date(date));
} /**
* 将long型时间格式转换为字符格式
*
* @return 返回字符串格式 yyyy-MM-dd HH:mm
*/
public static String long2DatemString(long date){
if(date == -99){
return "-";
}
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATETIME_M);
return sdf.format(new Date(date));
} /**
* 将long型时间格式转换为字符格式
*
* @param date
* @return 返回字符串格式 yyyy-MM-dd
*/
public static String long2String(Long date){
if(null == date || date == -99 || date == 0){
return "-";
}
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATE);
return sdf.format(new Date(date));
} /***
* YYYY-MM-DD
* @param dateTime
* @return
*/
public static long str2Long(String dateTime){
if (StringUtils.isBlank(dateTime)) {
return 0l;
}
Date date = string2Date(dateTime); return date.getTime();
}
/**
* yyyy-MM-dd HH:mm:ss
* @param dateTime
* @return
*/
public static long strSLong(String dateTime){
if (StringUtils.isBlank(dateTime)) {
return 0l;
}
Date date = string2Datetime(dateTime); return date.getTime();
} /**
* 将DateTime型时间格式转换为long
*
* @param date
* @return
*/
public static long date2Long(DateTime dateTime){
if (dateTime == null) {
return 0l;
}
String date1 = dateTimeToString(dateTime);
Date date = string2Date(date1);
return date.getTime();
} /**
* 获得精确到秒的日期类型
* yyyy-MM-dd HH:mm:ss
* @param date
* @return
*/
public static Date string2Datetime(String date) {
Date retValue = null ;
SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_DATETIME);
try{
retValue = sdf.parse(date);
}catch(Exception e){
e.printStackTrace();
}
return retValue;
} /**
* 获得日期类型
*
* @param date
* @return
*/
public static Date string2Date(String date) {
Date retValue = null ;
SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_DATE);
try{
retValue = sdf.parse(date);
}catch(Exception e){
e.printStackTrace();
}
return retValue;
} /**
* 日期转换为Long
*
* @param dateTime
* @return
*/
public static long str2MonthLong(String dateTime){
if (StringUtils.isEmpty(dateTime)) {
return 0l;
}
Date date = string2MonthDate(dateTime); return date != null ? date.getTime() : 0l;
} /**
* 获得月份类型
*
* @param date
* @return
*/
public static Date string2MonthDate(String date) {
Date retValue = null ;
SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_MONTH);
try{
retValue = sdf.parse(date);
}catch(Exception e){
e.printStackTrace();
}
return retValue;
}
/***
* YYYY-MM-DD
* @param date
* @return
*/
public static int getDayOfWeek(String date){
String[] dateArr = date.split("-");
int year = Integer.parseInt(dateArr[0]);
int month = Integer.parseInt(dateArr[1]);
int day= Integer.parseInt(dateArr[2]);
Calendar calendar = Calendar.getInstance();//获得一个日历
calendar.set(year, month-1, day);//设置当前时间,月份是从0月开始计算
int number = calendar.get(Calendar.DAY_OF_WEEK);//星期表示1-7,是从星期日开始,
return number;
}
/**
* 获取指定日期一年前时间
*
* @return 返回long格式
*/
public static long getChainYear(long date){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(date));
cal.add(Calendar.YEAR,-1);
return cal.getTime().getTime();
} /***
* 时间差,分钟
* @param startTime
* @param endTime
* @return
*/
public static String timeDifference(long startTime,long endTime ){
long timeDifferenceSecond = endTime - startTime;
double dmin = ((double)timeDifferenceSecond/(60*1000));
BigDecimal bd = BigDecimal.valueOf(dmin);
DecimalFormat df = new DecimalFormat("0");
df.setRoundingMode(RoundingMode.HALF_UP);
return df.format(bd);
} public static Date getTimesWeekMoningDate(int h,int m,int s){
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int monday = cal.get(Calendar.MONDAY);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
cal.set(year, monday,dayOfMonth, h, m, s);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return cal.getTime();
}
/**
* 本周开始时间 yyyy-MM-dd HH:mm:ss 0点
* @return
*/
public static String getTimesWeekMorning() {
SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);
String dateString = formatter.format(getTimesWeekMoningDate(0,0,0));
return dateString;
} /**
* 本周结束时间 yyyy-MM-dd HH:mm:ss 24点
* @return
*/
public static String getTimesWeekNight() {
Calendar cal = Calendar.getInstance();
cal.setTime(getTimesWeekMoningDate(0,0,0));
cal.add(Calendar.DAY_OF_WEEK, 7);
SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);
String dateString = formatter.format(cal.getTime());
return dateString;
} /***
* 本月开始时间0点
* @return
*/
public static String getTimesMonthMorning() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);
String dateString = formatter.format(cal.getTime());
return dateString;
} /***
* 本月结束时间24点
* @return
*/
public static String getTimesMonthNight() {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int monday = cal.get(Calendar.MONDAY);
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
cal.set(year, monday,dayOfMonth, 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 24);
SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);
String dateString = formatter.format(cal.getTime());
return dateString;
}
}

java常用日期类型转换的更多相关文章

  1. java常用日期类总结

    java 常用的日期类有三个Date.SimpleDateFormat.Calendar

  2. Java常用日期操作

    对java中常用的日期操作进行整理. 1.日期格式化 /* * 日期格式化类(必须掌握) * API: * G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Mo ...

  3. java常用数据类型转换

    在Java开发过程中经常会涉及到数据类型的转换问题,比如数字型转字符型,字符型转日期型,字符串转数组等等,以及其他类型的强制转换等.经常出现,所以有必要总结一下. 1.如何将字串 String 转换成 ...

  4. C# 常用日期类型转换帮助类

    本文转载:http://www.cnblogs.com/iamlilinfeng/p/3378659.html 最近工作比较忙,与此同时自己也在业余时间开发一个电子商务网站.虽然每天都很累,但感觉过的 ...

  5. java常用日期函数总结

    请记得要引入java.util.Date和java.text.SimpleDateFormat两个包 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance( ...

  6. java常用日期操作方法

    package com.wujiangpo.test.util; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  7. Java常用日期处理方法

    import org.apache.commons.lang3.time.FastDateFormat; import org.joda.time.DateTime; import org.apach ...

  8. java 常用日期工具类的操作

    获取指定日期的时间戳 /* * 获取指定日期的时间戳 * */ public static long getMillis(String date_str){ try { SimpleDateForma ...

  9. 深入理解Java常用类-----时间日期

    除了String这个类在日常的项目中比较常用之外,有关时间和日期的操作也是经常遇到的,本篇就讲详细介绍下Java API中对时间和日期的支持.其实在Java 8之前时间日期的API并不是很好用,以至于 ...

随机推荐

  1. SecureCRT字体、界面优化

    SecureCRT字体.界面优化 本文是secureCRT的第三篇博文,也是目前secureCRT优化的最终篇.首次使用该软件时候.应该会设置字体和编码,接下来,将演示如何设置. 1. 字体.编码设置 ...

  2. 重回ubutntu12.04小记(装完ubuntu做的几件事)

    原来一直是在windows下用虚拟机跑redhat 和debian 做实验和一些工程,以前也装过ubuntu和windows双系统,但是换电脑后,就一直懒得捣鼓了. 现在,由于长期需要在linux上做 ...

  3. STS,修改Ctrl+Shift+R匹配类的配置

    在使用STS(Spring Tools)时,每次通过Ctrl+Shift+R查询类时,会出来一堆不想看到的类.如下所示: 上面的.class文件和父项目中的.java文件,在匹配类时,是不想看到的. ...

  4. MySQL必知必会3

    创建和操纵表 创建表 输入 CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT, cust_name char(50) NOT N ...

  5. 链表习题(2)-一个集合用带头结点的单链表L表示,编写算法删除其值最大的结点。

    /*一个集合用带头结点的单链表L表示,编写算法删除其值最大的结点.*/ /* 算法思想:使用pre,p,premax,max四个指针,pre和p进行比较,premax和max进行最后的删除操作 通过遍 ...

  6. CORS和CSRF

    CORS和CSRF 什么是CORS?CORS是一个W3C标准,全称是"跨域资源共享",他允许浏览器向夸源服务器,发出XMLHTTPRequest请求,从而克服了AJAX只能同源使用 ...

  7. FIFO形成3x3矩阵

    Verilog生成矩阵一般是使用shift_ip核,但其实用两个FIFO也行.最近刚好学到这种方法,把原理总结一下. 要求 现在有10x5的数据和对应数据有效指示信号,数据为0~49,要用FPGA对其 ...

  8. go 基本IO接口

    package main import ( "fmt" "io" "strings" ) func ReadFrom(reader io.R ...

  9. GOF 的23种JAVA常用设计模式总结 01 设计模式的概念分类和功能

    1.简介 软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.它描述了在软件设计过程中的一些不断重复发生的 ...

  10. Net文件递归查找并保存

    原理:遍历当前文件夹的子文件,保存遍历文件夹下的所有文件 主要方法(2个): //获取文件夹下的所有文件 并保存 string[] path = Directory.GetFiles(NeedFile ...