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));

}

}

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

  1. Java操作大数据量Excel导入导出万能工具类(完整版)

    Java操作大数据量Excel导入导出万能工具类(完整版) 转载自:https://blog.csdn.net/JavaWebRookie/article/details/80843653 更新日志: ...

  2. java日期转字符串_Java时间日期格式转换Date转String和String转Date

    1 Java时间格式转换大全2 3 import java.text.*;4 importjava.util.Calendar;5 public classVeDate {6 /** 7 * 获取现在 ...

  3. java定义时间格式大全_Java时间格式转换大全

    package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...

  4. java格式化到毫秒_java时间格式化到毫秒

    (3)Java 日期时间及其格式化 可以用 System 类的静态方法 publ... java的时间处理续计算java时间)_计算机软件及应用_IT/计算机_专业资料.1. java 计算时间依靠 ...

  5. java时间格式大全_java时间格式大全

    java.util.*; import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...

  6. java 时间戳 什么意思_java时间与时间戳

    (一)时间:当前时间 1.获取当前时间 Date date = new Date(); System.out.println(date); //Thu Dec 14 18:08:53 CST 2017 ...

  7. java分割字符串_Java中分割字符串

    java.lang.String的split()方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 publ ...

  8. java 格式化字符串_Java入门 - 语言基础 - 14.String类

    1.概述 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 2.创建字符串 创建字符串最简单的方式如下: String gr ...

  9. java中如何分隔字符串_Java中分割字符串

    java.lang.String的split()方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 publ ...

  10. java 字符分割函数_java中的字符串分割函数

    Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项: java.lang.string.split split ...

最新文章

  1. seaborn clustermap详解及绘制
  2. apt的通讯信道是如何发现的?
  3. 远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)
  4. Fedora 安装后需要做的第一件事
  5. 为节省8亿做迁移,13亿记录出错赔偿29亿
  6. Oracle中拼出树型结构
  7. 本表收录的字符的Unicode编码范围为19968至40869
  8. 微软的新一代web开发工具 - WebMatrix2
  9. Windows 10 Python 深度学习环境安装
  10. Moodle安装教程以及phpMyAdmin无法访问解决
  11. 雨木林风 的 Ylmf OS
  12. 深度神经网络的优化算法,深度神经网络算法原理
  13. 英国脱离欧盟Brexit目前票数:脱欧阵营51.4%领先!!!
  14. 差分贴片晶振使最强军事武器出世
  15. 宋立波:让子弹飞和云安全
  16. C++核心准则R.3: 原始指针(T*)不应拥有所有权
  17. shiny导出html,将R Shiny页面导出为PDF
  18. 归宿 - 写给无处安放的内心
  19. 电商群雄角逐中国会员经济红利,谁能拔得头筹?
  20. 方差分析——单因素方差分析

热门文章

  1. react高阶组件的使用
  2. CycleBeads:App不仅能避孕,成功率还有95%
  3. 轮廓系数--聚类分析
  4. 教育,需要 家-国 联手
  5. 大端模式和小端模式区别与检测
  6. 第07节:端到端测试的优化策略
  7. A标签下载文件 IE浏览器
  8. [Machine Learning]Markov chain and Hidden Markov Models(HMMs)
  9. 恐惧之间服务器维护,玩家们想起了被服务器统治的恐惧
  10. SPU和SKU区别与联系