java 时间加工工具类

原创 2015年07月06日 18:05:41
package cmcc.gz.common.app.util;


import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


/**
 * 日期转换工具
 * 
 * @author linchengliang
 * 
 */
public class DateUtil {
public static final String C_DATE_DIVISION = "-";
public static final String C_TIME_PATTON_DEFAULT = "yyyy-MM-dd HH:mm:ss";
public static final String C_DATE_PATTON_DEFAULT = "yyyy-MM-dd";
public static final String C_DATA_PATTON_YYYYMMDD = "yyyyMMdd";
public static final String C_TIME_PATTON_HHMMSS = "HH:mm:ss";


public static final int C_ONE_SECOND = 1000;
public static final int C_ONE_MINUTE = 60 * C_ONE_SECOND;
public static final int C_ONE_HOUR = 60 * C_ONE_MINUTE;
public static final long C_ONE_DAY = 24 * C_ONE_HOUR;


/**
* Return the current date

* @return - DATE<br>
*/
public static Date getCurrentDate() {
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();


return currDate;
}


/**
* Return the current date string

* @return - 产生的日期字符串<br>
*/
public static String getCurrentDateStr() {
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();


return format(currDate);
}


/**
* Return the current date in the specified format

* @param strFormat
* @return
*/
public static String getCurrentDateStr(String strFormat) {
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();


return format(currDate, strFormat);
}


/**
* Parse a string and return a date value

* @param dateValue
* @return
* @throws Exception
*/
public static Date parseDate(String dateValue) {
return parseDate(C_DATE_PATTON_DEFAULT, dateValue);
}


/**
* Parse a strign and return a datetime value

* @param dateValue
* @return
*/
public static Date parseDateTime(String dateValue) {
return parseDate(C_TIME_PATTON_DEFAULT, dateValue);
}


/**
* Parse a string and return the date value in the specified format

* @param strFormat
* @param dateValue
* @return
* @throws ParseException
* @throws Exception
*/
public static Date parseDate(String strFormat, String dateValue) {
if (dateValue == null)
return null;


if (strFormat == null)
strFormat = C_TIME_PATTON_DEFAULT;


SimpleDateFormat dateFormat = new SimpleDateFormat(strFormat);
Date newDate = null;


try {
newDate = dateFormat.parse(dateValue);
} catch (ParseException pe) {
pe.printStackTrace();
newDate = null;
}
return newDate;
}


/**
* 将Timestamp类型的日期转换为系统参数定义的格式的字符串。

* @param aTs_Datetime
*            需要转换的日期。
* @return 转换后符合给定格式的日期字符串
*/
public static String format(Date aTs_Datetime) {
return format(aTs_Datetime, C_DATE_PATTON_DEFAULT);
}


/**
* 将Timestamp类型的日期转换为系统参数定义的格式的字符串。

* @param aTs_Datetime
*            需要转换的日期。
* @return 转换后符合给定格式的日期字符串
*/
public static String formatTime(Date aTs_Datetime) {
return format(aTs_Datetime, C_TIME_PATTON_DEFAULT);
}


/**
* 将Date类型的日期转换为系统参数定义的格式的字符串。

* @param aTs_Datetime
* @param as_Pattern
* @return
*/
public static String format(Date aTs_Datetime, String as_Pattern) {
if (aTs_Datetime == null || as_Pattern == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Pattern);


return dateFromat.format(aTs_Datetime);
}


/**
* @param aTs_Datetime
* @param as_Format
* @return
*/
public static String formatTime(Date aTs_Datetime, String as_Format) {
if (aTs_Datetime == null || as_Format == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Format);


return dateFromat.format(aTs_Datetime);
}


public static String getFormatTime(Date dateTime) {
return formatTime(dateTime, C_TIME_PATTON_HHMMSS);
}


/**
* @param aTs_Datetime
* @param as_Pattern
* @return
*/
public static String format(Timestamp aTs_Datetime, String as_Pattern) {
if (aTs_Datetime == null || as_Pattern == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Pattern);


return dateFromat.format(aTs_Datetime);
}


/**
* 取得指定日期N天后的日期

* @param date
* @param days
* @return
*/
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);


cal.add(Calendar.DAY_OF_MONTH, days);


return cal.getTime();
}


/**
* 计算两个日期之间相差的天数

* @param date1
* @param date2
* @return
*/
public static int daysBetween(Date date1, Date date2) {
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
long time1 = cal.getTimeInMillis();
cal.setTime(date2);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);


return Integer.parseInt(String.valueOf(between_days));
}


/**
* 计算当前日期相对于"1977-12-01"的天数

* @param date
* @return
*/
public static long getRelativeDays(Date date) {
Date relativeDate = DateUtil.parseDate("yyyy-MM-dd", "1977-12-01");


return DateUtil.daysBetween(relativeDate, date);
}


public static Date getDateBeforTwelveMonth() {
String date = "";
Calendar cla = Calendar.getInstance();
cla.setTime(getCurrentDate());
int year = cla.get(Calendar.YEAR) - 1;
int month = cla.get(Calendar.MONTH) + 1;
if (month > 9) {
date = String.valueOf(year) + C_DATE_DIVISION
+ String.valueOf(month) + C_DATE_DIVISION + "01";
} else {
date = String.valueOf(year) + C_DATE_DIVISION + "0"
+ String.valueOf(month) + C_DATE_DIVISION + "01";
}


Date dateBefore = parseDate(date);
return dateBefore;
}


/**
* 传入时间字符串,加一天后返回Date

* @param date
*            时间 格式 YYYY-MM-DD
* @return
*/
public static Date addDate(String date) {
if (date == null) {
return null;
}
Date tempDate = parseDate(C_DATE_PATTON_DEFAULT, date);
String year = format(tempDate, "yyyy");
String month = format(tempDate, "MM");
String day = format(tempDate, "dd");


GregorianCalendar calendar = new GregorianCalendar(
Integer.parseInt(year), Integer.parseInt(month) - 1,
Integer.parseInt(day));


calendar.add(GregorianCalendar.DATE, 1);
return calendar.getTime();
}


/**
* 判断date1是否在date2之后,在返回true,不在返回false

* @method after
* @param date1
* @param date2
* @return
* @throws
*/
public static boolean after(Date date1, Date date2) {


System.out.println(date1);
System.out.println(date2);
/**
* 获得时间1
*/
Calendar calone = Calendar.getInstance();
calone.setTime(date1);


/**
* 获得时间2
*/
Calendar caltwo = Calendar.getInstance();
caltwo.setTime(date2);


return calone.after(caltwo);


}


public static String getFormatDateTime(Date dateTime) {
return formatTime(dateTime, C_TIME_PATTON_DEFAULT);
}


// public String test(TestDomain joinInfo) {
// return joinInfo.getId() + ":" + joinInfo.getName();
// }


public static String getSGWDateTime(long dateTime) {


dateTime = dateTime * 1000;
long sd = (dateTime - 28800000);


Date dat = new Date(sd);
return formatTime(dat);
}


/**
* 获取当前时间的前一天 yyyy-MM-dd
*/
public static String getBeforDate() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); // 得到前一天
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return df.format(date);
}


/**
* 获取当前时间的前一天 yyyyMMdd
*/
public static String getBeforDateNoWire() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); // 得到前一天
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
return df.format(date);
}


/**
* 当前时间 yyyyMMdd
*/
public static String getNowDate() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
return df.format(date);
}


/**
* 当前时间 yyyy-MM-dd HH:mm:ss
*/
public static String getNow() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df.format(date);
}


/**
* 将时间戳装换成字符串时间
*/
public static String getDateByNum(String dateNum) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sdf.format(new Date(
(long) (Double.parseDouble(dateNum) * 1000)));
return date;
}



 
/**
* 当前时间 yyyy-MM-dd HH:mm:ss 
*/
public static String getNowTime() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("MMddHHmmss");
return df.format(date);
}

public static void main(String[] args) {
System.out.println((int)(Math.random()*100000));
}




}

贪心算法之木棍问题

问题 H: 木棒 时间限制: 1 Sec 内存限制: 32 MB 提交: 147 解决: 60 提交状态 题目描述 现有n根木棒,已知它们的长...
  • qq_24722301
  • qq_24722301
  • 2015年04月06日 21:20
  • 1368

Codevs3008 加工生产调度

题目大意:某工厂收到了n个产品的订单,这n个产品分别在A、B两个车间加工,并且必须先在A车间加工后才可以到B车间加工。求怎样安排这n个产品的加工顺序,才能使总的加工时间最短。这里所说的加工时间是指,从...
  • Little_Flower_0
  • Little_Flower_0
  • 2015年08月21日 15:12
  • 1116

企业外协加工费用的账务处理

原文: http://www.chinaacc.com/new/253_256_201306/14zh690616836.shtml 案例:FGF公司生产汽车零部件,在2008年1月按销售计划生...
  • cmzhuang
  • cmzhuang
  • 2017年12月27日 10:20
  • 177

浅谈BI领域的数据模型设计(二)

分类: 数据仓库与数据挖掘 /**********************************/ 目录: 第一部分:基础概念 第二部分:设计方式 第三部分:银行业数据模型基本概念介绍...
  • zhaojike
  • zhaojike
  • 2017年04月20日 01:34
  • 1074

写加工逻辑说明的三个小工具

最近刚刚看到软件工程的
  • u013058618
  • u013058618
  • 2014年09月14日 19:22
  • 1439

数据结构简单应用

题目描述 现有n根木棒,已知它们的长度和重量。要用一部木工机一根一根地加工这些木棒。该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模板的。木工机需要的准备时间如下: (1)第一根...
  • WIHK666
  • WIHK666
  • 2017年05月02日 19:29
  • 149

双机流水作业调度——codevs3008 加工生产调度

http://codevs.cn/problem/3008/ 额; 额; 我直接复制题解把; 这种题目是有个名词的,叫双机流水作业调度。 当然,poj上有这种题目,poj 2751,S...
  • largecub233
  • largecub233
  • 2017年06月01日 14:31
  • 195

生产管理企业中委外加工如何运用ERP系统解决

制造企业为了保证产品的质量和交货期,大多数企业都存在着将部分零部件进行委外加工的业务,委外加工一般指的是其他企业根据本企业的零件加工要求,生产制造出符合要求的零部件或产品,往往需要企业提供材料或技术图...
  • mysecrets
  • mysecrets
  • 2017年06月08日 09:00
  • 607

POJ1051 木棍叠加

题目详见http://acm.hdu.edu.cn/showproblem.php?pid=1051 意思就是说如果机器要处理叠加的木棍。第一个木棍处理时候机器需要时间调整,如果下个叠加的木棍的长度...
  • sustliangbo
  • sustliangbo
  • 2013年08月18日 11:07
  • 1374

记忆信息的三级加工模型

Multi Store Model (Atkinson and Shiffrin, 1968) The multi store model is a classic model of memory....
  • qq1175421841
  • qq1175421841
  • 2016年05月13日 22:49
  • 1004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 时间加工工具类
举报原因:
原因补充:

(最多只允许输入30个字)