博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日期时间-字符串转换 java代码
阅读量:4949 次
发布时间:2019-06-11

本文共 3796 字,大约阅读时间需要 12 分钟。

package net.william.util;

import java.text.ParseException;

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

/**

* 时间日期处理工具包,从String到Date的转换以及从String到Date的转换<br>
* 等格式化处理
* original author(William) all rights reserved
* @author William E-Mail:feng_dreaming@163.com
* @since 2010-4-15
* @see java.util.Date<br>
* java.text.SimpleDateFormat<br>
* java.util.Calendar
* **/
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";
/**
* 如果参数长度不为为0,则取第一个参数进行格式化,<br>
* 否则取当前日期时间,精确到秒 如: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.length > 0) {
return simple.format(date[0]);
}
return simple.format(new Date());
}

/**

* 如果参数长度不为为0,则取第一个参数进行格式化,<br>
* 否则取当前日期 如: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,则取第一个参数进行格式化,<br>
* 否则取当前日期时间,精确到秒<br>
* 如: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<br>
* 方便日期推算,格式化后的是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 要被偏移的日期,<br>
* amout 偏移量<br>
* 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 要被偏移的日期,<br>
* amout 偏移量<br>
* 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));
}

}

 

转载于:https://www.cnblogs.com/mfryf/archive/2013/05/25/3098216.html

你可能感兴趣的文章
阴影效果参考网址
查看>>
华为交换机端口镜像
查看>>
简易爬虫(爬取本地数据)
查看>>
一位菜鸟的java 最基础笔记
查看>>
python 进程间通信
查看>>
字符串和编码
查看>>
servlet(一)
查看>>
异常实验
查看>>
python \r与\b的应用、光标的含义
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Java环境变量PATH和CLASSPATH
查看>>
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>
收藏夹(持续更新)
查看>>
iOS中的#import和class区别
查看>>
节约内存,请使用标签页管理工具:onetab、better onetab
查看>>
jQuery中的事件与动画
查看>>
页面加载骨架
查看>>
关于android系统不关屏设置
查看>>
SONY VPCS138EC降级安装XP
查看>>