java 时间转换字符串_java时间转换字符串万能操作工具类,让你轻松转换

package util;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

/**

* 时间日期处理工具

* String -> Date

* Date -> String

* 以及生成含有日期的字符串 可以当作保存id用等等。

* 等格式化处理

*

* @author BlueSky

* **/

public class DateUtil {

private static final String FORMAT_0 = "yyyy-MM-dd HH:mm:ss";

private static final String FORMAT_1 = "yyyy-MM-dd";

private static final String FORMAT_2 = "HH:mm:ss";

private static final String FORMAT_3 = "yyyyMMddHHmmss";

/**获得含有时间的id 字符串

* @return

*/

public static String getIdByTime(){

Date now = new Date();

SimpleDateFormat simple = new SimpleDateFormat(FORMAT_3);

return simple.format(now);

}

/**

* 如果参数长度不为为0,则取第一个参数进行格式化,

* 否则取当前日期时间,精确到秒 如:2010-4-15 9:36:38

*

* @param Date

* ... 可变参数

* @return java.lang.String

* **/

public static String toFull(Date... date) {

SimpleDateFormat simple = new SimpleDateFormat(FORMAT_0);

if (date!=null && date.length > 0) {

return simple.format(date[0]);

}

return simple.format(new Date());

}

/**

* 如果参数长度不为为0,则取第一个参数进行格式化,

* 否则取当前日期 如:2010-4-15

*

* @param Date

* ... 可变参数

* @return java.lang.String

* **/

public static String toDate(Date... date) {

SimpleDateFormat simple = new SimpleDateFormat(FORMAT_1);

if (date.length > 0) {

return simple.format(date[0]);

}

return simple.format(new Date());

}

/**

* 如果参数长度不为为0,则取第一个参数进行格式化,

* 否则取当前日期时间,精确到秒

* 如:9:36:38

*

* @param Date

* ... 可变参数

* @return java.lang.String

* **/

public static String toTime(Date... date) {

SimpleDateFormat simple = new SimpleDateFormat(FORMAT_2);

if (date.length > 0) {

return simple.format(date[0]);

}

return simple.format(new Date());

}

/**

* 根据字符串格式去转换相应格式的日期和时间

*

* @param java

* .lang.String 必要参数

* @return java.util.Date

* @exception java.text.ParseException

* 如果参数格式不正确会抛出此异常

* **/

public static Date reverse2Date(String date) {

SimpleDateFormat simple = null;

switch (date.trim().length()) {

case 19:// 日期+时间

simple = new SimpleDateFormat(FORMAT_0);

break;

case 10:// 仅日期

simple = new SimpleDateFormat(FORMAT_1);

break;

case 8:// 仅时间

simple = new SimpleDateFormat(FORMAT_2);

break;

default:

break;

}

try {

return simple.parse(date.trim());

} catch (ParseException e) {

e.printStackTrace();

}

return null;

}

/**

* 将带有时、分、秒格式的日期转化为00:00:00

* 方便日期推算,格式化后的是yyyy-MM-dd 00:00:00

*

* @param java

* .util.Date... date的长度可以为0,即不用给参数

* @return java.util.Date

* **/

public static Date startOfADay(Date... date) {

SimpleDateFormat simple = new SimpleDateFormat(FORMAT_1);

Date date_ = date.length == 0 ? new Date() : date[0];// 如果date为null则取当前时间

String d = simple.format(date_);

try {

return simple.parse(d);

} catch (ParseException e) {

e.printStackTrace();

}

return null;

}

/**

* 推算一个月内向前或向后偏移多少天,当然推算年也可以使用

*

* @param date

* 要被偏移的日期,

* amout 偏移量

* b 是否先将date格式化为yyyy-MM-dd 00:00:00 即: 是否严格按整天计算

* @return java.util.Date

* **/

public static Date addDayOfMonth(Date date, Integer amount, Boolean b) {

date = date == null ? new Date() : date;// 如果date为null则取当前日期

if (b) {

date = startOfADay(date);

}

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.DAY_OF_MONTH, amount);

return cal.getTime();

}

/**

* 推算一个小时内向前或向后偏移多少分钟,除了秒、毫秒不可以以外,其他都可以

*

* @param date

* 要被偏移的日期,

* amout 偏移量

* b 是否先将date格式化为yyyy-MM-dd HH:mm:00 即: 是否严格按整分钟计算

* @return java.util.Date

* **/

public static Date addMinuteOfHour(Date date, Integer amount, Boolean b) {

date = date == null ? new Date() : date;// 如果date为null则取当前日期

if (b) {

SimpleDateFormat simple = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:00");

try {

date = simple.parse(simple.format(date));

} catch (ParseException e) {

e.printStackTrace();

}

}

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.MINUTE, amount);

return cal.getTime();

}

public static void main(String[] args) {

System.out.println(DateUtil.addMinuteOfHour(new Date(), 60, false));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值