zoukankan      html  css  js  c++  java
  • 日期时间字符串转换 java代码

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

    }

     
  • 相关阅读:
    VMware workstation中安装Ubuntu18.04server
    python一行命令安装chromedriver
    vim配置&相关问题
    博客园美化
    期望DP——HDU4035Maze
    [学习笔记]虚树
    线段树——51nod1593&CF515E 公园晨跑
    [STL] multiset
    [学习笔记] 线性基
    泛化物品优化树型DP——[HAOI2010]软件安装
  • 原文地址:https://www.cnblogs.com/mfryf/p/3098216.html
Copyright © 2011-2022 走看看