`
cczzyc
  • 浏览: 23930 次
社区版块
存档分类
最新评论
阅读更多

总结了一下日期转换常用的几种,看源码:

private static final Logger logger = Logger.getLogger(DateUtil.class);
    /**
     * 日期转换成字符串格式
     * @param date
     * @param pattern
     * @return
     */
    public String dateToString(Date date, String pattern){
        SimpleDateFormat sf = new SimpleDateFormat(pattern);
        return sf.format(date);
    }
   
    /**
     * 字符串格式转换成日期格式
     * @param dateString
     * @param pattern
     * @return
     */
    public Date stringToDate(String dateString, String pattern){
        SimpleDateFormat sf = new SimpleDateFormat(pattern);
        Date date = null;
        try {
            date = sf.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
   
    /**
     * 获得两个日期之间的所有日期
     * @param startDate
     * @param endDate
     * @return
     */
    public static List<String> getDateStringListByBetweenTwoDates(String beginDate,String endDate){
        List<String> dateList = new ArrayList<String>();
        int maxRound = 366;//hardcode
        int round = 0;
        String nextDate = beginDate;
        dateList.add(nextDate);
        while ((nextDate != null && !nextDate.equals(endDate)) && round++ < maxRound){
            nextDate = DateStringAdd(nextDate, 1);
            dateList.add(nextDate);
        }
        return dateList;
    }
   
    /**
     * 获得日期的上个或下个日期
     * @param dateString
     * @param add
     * @return
     */
    public static String DateStringAdd(String dateString, int add){
        String sret = "";
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        if (dateString == null)
            return null;
        if (add == 0)
            return dateString;
        if (!dateString.startsWith("1") && !dateString.startsWith("2"))
            return null;
        if(add <0)
            return null;
        try {
            Date date = sf.parse(dateString);
            int year = date.getYear()+1900;
            int month = date.getMonth()+1;
            int day = date.getDate();
            switch(month){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                    if(day+add>31){
                        month++;
                        day=1;
                    }else{
                        day=day+add;
                    }
                    break;
                case 12:
                    if(month==12 && day+add>31){
                        year++;
                        month=1;
                        day=1;
                    }else{
                        day=day+add;
                    }
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    if(day+add>30){
                        month++;
                        day=1;
                    }else{
                        day=day+add;
                    }
                    break;
                case 2:
                    if(year%400==0||(year%4==0 && year%100!=0)){
                        if(day+add>29){
                            month++;
                            day=1;
                        }else{
                            day=day+add;
                        }
                    }else{
                        if(day+add>28){
                            month++;
                            day=1;
                        }else{
                            day=day+add;
                        }
                    }
                    break;
            }
            if(month<10){
                sret = year+"-0"+month;
            }else{
                sret = year+"-"+month;
            }
            if(day<10){
                sret = sret+"-0"+day;
            }else{
                sret = sret+"-"+day;
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
       
        return sret;
    }
   
    /**
     * 日期字符串转换成Timestamp类型
     * @param dateString
     * @return
     */
    public static Timestamp dateStringConvertToTimestamp(String dateString, String pattern){
        dateString = dateString.replaceAll("&nbsp;", " ");
        SimpleDateFormat sf = new SimpleDateFormat(pattern);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timestampString = null;
        try {
            Date date = sf.parse(dateString);
            timestampString = sdf.format(date);
        } catch (ParseException e) {
            logger.info("格式转换错误...");
            e.printStackTrace();
        }
        Timestamp timestamp = Timestamp.valueOf(timestampString);
        return timestamp;
    }
    //当前时间加间小时分钟
    public static String currentTimeAddMinute(Integer minute){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm");
//        Date now = new Date();
        Calendar ca = Calendar.getInstance();
        //加小时
        ca.add(Calendar.HOUR_OF_DAY, minute);
//        ca.add(Calendar.DAY_OF_YEAR, minute);
        //加分钟
//        ca.add(Calendar.MINUTE, minute);
        System.out.println("当前时间加5分钟的时间:"+sdf.format(ca.getTime()));
        return sdf.format(ca.getTime());
    }
    //比较两个时间的大小
    public boolean compareDate(String beginDate,String endDate) throws ParseException{
        beginDate="2015-03-21 12:23:20";
        endDate="2015-03-21 12:23:20";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date nowBegin =sdf.parse(beginDate);
        Date nowEnd=sdf.parse(endDate);
        if(nowBegin.getTime()<nowEnd.getTime()){
            return true;
        }else{
            return false;
        }
    }

0
0
分享到:
评论

相关推荐

    Date日期操作工具类

    在Java编程中,Date类是处理日期和时间的基础类,但在实际开发中,由于Date类本身的API设计并不十分友好,通常我们会使用工具类来简化日期的处理工作。本主题聚焦于一个名为"Date日期操作工具类"的实用工具,它提供...

    日期比较大小

    然而,由于日期通常以字符串形式存储或传输,因此需要将其转换为可以进行数值比较的格式,这便是“日期比较大小”的核心所在。 ### 实现方法:Java示例 在给定的代码片段中,展示了一种使用Java语言比较两个日期...

    Java - DateUtil 日期时间转换工具类

    内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关的方法,如:获取指定日期几天后的日期;...

    java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx

    在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类。它们虽然名字相似,但在实际应用中有很大的区别。 - **`java.util.Date`**:这个类提供了创建和操作日期/时间的功能,它...

    日期转换工具类

    - **日期比较**:提供比较两个日期大小的方法。 - **日期加减**:提供增加或减少指定天数/小时/分钟等的方法。 - **日期范围**:提供生成两个日期之间的所有日期的方法。 #### 结论 `DateTimeUtil`类为日期时间的...

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    这篇博客文章“java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒”提供了一个实用的工具类,帮助开发者更方便地处理日期和时间差异。下面将详细解释这个工具类中的关键知识点。 1. **Java...

    date与long型转换工具

    在编程领域,日期和时间的处理是至关重要的。...总之,"date与long型转换工具"是一个实用的辅助工具,简化了Java开发中日期和时间的转换操作,对于需要频繁处理时间数据的项目来说,它的存在大大提高了开发效率。

    两个类(JAVA类型转换)

    "两个类(JAVA类型转换)"的标题暗示我们将探讨两个Java类如何进行类型转换,以及可能涉及的正则表达式(Regular Expression)的应用。正则类型转换标签进一步强调了这将涉及到使用正则表达式进行数据验证或格式转换...

    java时间日期格式化工具类

    Java提供了多种处理日期和时间的API,包括`java.util.Date`、`java.text.SimpleDateFormat`、`java.time`包中的类等。本篇文章将深入探讨Java中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开...

    json工具类,java日期转换,字符串转换等各种工具类

    Java 8的`java.time`包提供了丰富的日期时间API,如`Period`和`Duration`用于计算两个日期或时间差,`TemporalAdjusters`允许进行复杂的日期调整,如下一个工作日等。 这些工具类是提高开发效率的关键,它们简化了...

    java操作日期时间工具类

    3. **日期时间比较**:`DateUtil.before(date1, date2)`和`DateUtil.after(date1, date2)`方法可以判断两个日期时间的先后关系。 ```java public static boolean before(Date d1, Date d2) { return d1.compareTo...

    JAVA日期判断方法小结

    该方法使用SimpleDateFormat类将日期字符串解析为Date对象,然后使用getTime方法获取日期的毫秒数,最后使用算术运算符计算两个日期之间的天数。 日期判断是JAVA语言中的一个重要组成部分,掌握这些方法可以帮助...

    日期跟long转换小工具

    然而,直接在代码中处理这两个类型之间的转换可能会较为复杂,尤其是在涉及到用户界面展示或需要理解时间戳值时。因此,该工具的存在极大地简化了这个过程。 日期转long的转换涉及到将日期对象转换为对应的时间戳。...

    最全的java时间(日期)工具类

    本文将深入探讨Java中的日期时间工具类,特别是基于给定的"DateUtil.java"文件,我们将聚焦在传统`java.util.Date`和`java.text.SimpleDateFormat`以及Java 8的`java.time`包中的相关类。 首先,我们来看看`java....

    TimeUtil_java-long型与Date型时间转换工具

    总的来说,`TimeUtil_java-long型与Date型时间转换工具`这个压缩包很可能包含了一个方便的工具类,用于在`long`类型和`Date`类型之间进行转换,并提供了日期相关的辅助方法。在实际开发中,这样的工具类可以极大地...

    Java日期常用操作方法工具类

    4. 日期比较:提供比较两个日期的方法,判断是否在某个日期之前或之后。 5. 时间间隔:计算两个日期之间的差值,如相差的天数、小时数等。 6. 日期范围:检查日期是否在指定的日期范围内。 对于`JavaDateUtil.java`...

    java日期,时间工具类

    各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用

    Android-Java中的日期转化格式DateUtil工具类

    3. `isSameDay(Date date1, Date date2)`: 比较两个日期是否属于同一天,忽略时间部分。这通常通过获取日期的年、月、日字段并进行比较实现。 4. `getTimeDifference(Date older, Date newer)`: 计算两个日期之间的...

    Java日期工具类,Java时间工具类,Java时间格式化

    首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示特定的瞬间,精确到毫秒。而`SimpleDateFormat`是一个具体的类,用于日期和时间的格式化...

Global site tag (gtag.js) - Google Analytics