精华内容
下载资源
问答
  • Java String转Date

    万次阅读 2019-01-03 11:00:46
    接口之间数据的传输都是字符串,现在需要把数据存储在数据库,刚好我们使用了JPA,定义对象的时候将日期定义为了Date,所以不得不把String转为Date对象。具体如下: SimpleDateFormat simpleDateFormat = new ...

    接口之间数据的传输都是字符串,现在需要把数据存储在数据库中,刚好我们使用了JPA,定义对象的时候将日期定义为了Date,所以不得不把String转为Date对象。具体如下:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String dateStr = "2019-01-03 10:59:27";
    Date date = simpleDateFormat.parse(dateStr);
    

    也可以写成下面一行:

    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2019-01-03 10:59:27")
    
    展开全文
  • JAVA中StringDate类型互

    千次阅读 2018-09-05 11:10:33
    String2Date && Date2String ...在java中不支持StringDate直接转换,提供了一个转换中间类SimpleDateFormat(import java.text.SimpleDateFormat;),通过SimpleDateFormat提供...

            String2Date              &&      Date2String

    首先,感谢阅览,能够帮到你是我的荣幸,有不足的挺多指教。

    在java中不支持String和Date直接转换,提供了一个转换中间类SimpleDateFormat(import java.text.SimpleDateFormat;),通过SimpleDateFormat提供的两个方法进行转换:

    /**
         * Formats a Date into a date/time string.
         * @param date the time value to be formatted into a time string.
         * @return the formatted time string.
         */
        public final String format(Date date)
        {
            return format(date, new StringBuffer(),
                          DontCareFieldPosition.INSTANCE).toString();
        }
    
        /**
         * Parses text from the beginning of the given string to produce a date.
         * The method may not use the entire text of the given string.
         * <p>
         * See the {@link #parse(String, ParsePosition)} method for more information
         * on date parsing.
         *
         * @param source A <code>String</code> whose beginning should be parsed.
         * @return A <code>Date</code> parsed from the string.
         * @exception ParseException if the beginning of the specified string
         *            cannot be parsed.
         */
        public Date parse(String source) throws ParseException
        {
            ParsePosition pos = new ParsePosition(0);
            Date result = parse(source, pos);
            if (pos.index == 0)
                throw new ParseException("Unparseable date: \"" + source + "\"" ,
                    pos.errorIndex);
            return result;
        }

     创建SimpleDateFormat对象,相关函数语法

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    /**
        SimpleDateFormat函数语法:
      
             G 年代标志符
             y 年
             M 月
             d 日
             h 时 在上午或下午 (1~12)
             H 时 在一天中 (0~23)
             m 分
             s 秒
             S 毫秒
             E 星期
             D 一年中的第几天
             F 一月中第几个星期几
             w 一年中第几个星期
             W 一月中第几个星期
             a 上午 / 下午 标记符 
             k 时 在一天中 (1~24)
             K 时 在上午或下午 (0~11)
             z 时区 常见标准的写法"yyyy-MM-dd HH:mm:ss",注意大小写,时间是24小时制,24小时制转换成12小时制只需将HH改成hh,不需要另外的函数。
    */

     一般时间字符串格式:

    /** 
       * 字符串转换为java.util.Date<br> 
       * 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2022-1-1 AD at 22:10:59 PSD'<br> 
       * yy/MM/dd HH:mm:ss 如 '2022/1/1 17:55:00'<br> 
       * yy/MM/dd HH:mm:ss pm 如 '2022/1/1 17:55:00 pm'<br> 
       * yy-MM-dd HH:mm:ss 如 '2022-1-1 17:55:00' <br> 
       * yy-MM-dd HH:mm:ss am 如 '2022-1-1 17:55:00 am' <br> 
       */ 

     

    项目中使用的相对校多,具体转换实例如下:

    
    
    import org.apache.commons.collections4.CollectionUtils;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.time.*;
    import java.util.*;
    
    /**
     * @author: feng
     * @date: 2018/3/16
     * @description:
     */
    
    public class DateUtils{
    
        private static final int DAY_MILLISECONDS = 1000 * 24 * 60 * 60;
    
        private static final int HOUR_MILLISECONDS = 1000 * 60 * 60;
    
        private static final int MINUTE_MILLISECONDS = 1000 * 60;
    
        //计算时间差,精确到天
        public static int diffDays(Date start, Date end) {
            long diff = end.getTime() - start.getTime();
            return (int) (diff / (DAY_MILLISECONDS));
        }
        //计算时间差,精确到小时
        public static int diffHours(Date start, Date end) {
            long diff = end.getTime() - start.getTime();
            return (int) (diff / (HOUR_MILLISECONDS));
        }
        //计算时间差,精确分钟
        public static int diffMinutes(Date start, Date end) {
            long diff = end.getTime() - start.getTime();
            return (int) (diff / (MINUTE_MILLISECONDS));
        }
        //计算时间差,精确到分钟
        public static int diffSeconds(Date start, Date end) {
            long diff = end.getTime() - start.getTime();
            return (int) (diff / 1000);
        }
        //获取当前时间,年-月-日
        public static Date getToday() {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String s = sdf.format(new Date());
            Date date = null;
            try {
                date = sdf.parse(s);
            } catch (ParseException e) {
    
            }
            return date;
        }
    
        /**
         * 获取前几天的时间
         *
         * @param date currentDate
         * @param days beforeDate
         * @return
         */
        public static Date getDateBefore(Date date, int days) {
            Calendar now = Calendar.getInstance();
            now.setTime(date);
            now.set(Calendar.DATE, now.get(Calendar.DATE) - days);
            return now.getTime();
        }
    
        /**
         * 获取后几天的时间
         *
         * @param date currentDate
         * @param days afterDays
         * @return
         */
        public static Date getDateAfter(Date date, int days) {
            Calendar now = Calendar.getInstance();
            now.setTime(date);
            now.set(Calendar.DATE, now.get(Calendar.DATE) + days);
            return now.getTime();
        }
        //转换Date  to  String
        public static String date2String(Date date,String str){
            SimpleDateFormat sdf = new SimpleDateFormat(str);
            return sdf.format(date);
        }
    
        public static Date parseDate(String str) {
            return parseDate(str, "yyyy-MM-dd");
        }
        //转换String  to  Date,入参str:转换字符串,例如2018-01-01 00:00:00  pattern:转换后格式
        public static Date parseDate(String str, String pattern) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
            Date date = null;
            try {
                date = simpleDateFormat.parse(str);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return date;
        }
    
        public static List<Date> getDatesBetween(Date startDate, Date endDate) {
            Long mils = (endDate.getTime() - startDate.getTime()) / (DAY_MILLISECONDS);
            int days = mils.intValue();
            List<Date> res = new ArrayList<>();
            for (int i = 0; i < days; i++) {
                res.add(org.apache.commons.lang3.time.DateUtils.addDays(startDate, i));
            }
            return res;
        }
    
        public static List<Date> getDatesBetweenIncludeEnd(Date startDate, Date endDate){
            List<Date> res = getDatesBetween(startDate, endDate);
            res.add(endDate);
            return res;
        }
    
        public static Set<DayOfWeek> getWeekendDay(List<Integer> list) {
            Set<DayOfWeek> res = new HashSet<>();
            if (CollectionUtils.isEmpty(list)) {
                return res;
            }
            for (Integer i : list) {
                switch (i) {
                    case 1:
                        res.add(DayOfWeek.MONDAY);
                        break;
                    case 2:
                        res.add(DayOfWeek.TUESDAY);
                        break;
                    case 3:
                        res.add(DayOfWeek.WEDNESDAY);
                        break;
                    case 4:
                        res.add(DayOfWeek.THURSDAY);
                        break;
                    case 5:
                        res.add(DayOfWeek.FRIDAY);
                        break;
                    case 6:
                        res.add(DayOfWeek.SATURDAY);
                        break;
                    case 7:
                        res.add(DayOfWeek.SUNDAY);
                        break;
                    default:
                }
            }
            return res;
        }
    
        public static DayOfWeek getDayOfWeek(Date date) {
            Instant instant = date.toInstant();
            ZoneId zoneId = ZoneId.systemDefault();
            LocalDate localDate = LocalDateTime.ofInstant(instant, zoneId).toLocalDate();
            return localDate.getDayOfWeek();
        }
    
        /**
         * 将 1,2,3 .... 形式的星期集合  转化为 星期一,星期二,星期三 .... 这种形式
         *
         * @param weekDays
         * @return
         */
        public static List<String> weekDaysChange(List<String> weekDays) {
            List<String> newWeekDays = new ArrayList<>();
            for (String weekDay : weekDays) {
                switch (weekDay) {
                    case "1":
                        newWeekDays.add("星期一");
                        break;
                    case "2":
                        newWeekDays.add("星期二");
                        break;
                    case "3":
                        newWeekDays.add("星期三");
                        break;
                    case "4":
                        newWeekDays.add("星期四");
                        break;
                    case "5":
                        newWeekDays.add("星期五");
                        break;
                    case "6":
                        newWeekDays.add("星期六");
                        break;
                    case "7":
                        newWeekDays.add("星期日");
                        break;
                    default:
                }
            }
            return newWeekDays;
        }
    
        public static DayOfWeek getDayOfWeekFromNumber(Integer day) {
            switch (day) {
                case 1:
                    return DayOfWeek.MONDAY;
                case 2:
                    return DayOfWeek.TUESDAY;
                case 3:
                    return DayOfWeek.WEDNESDAY;
                case 4:
                    return DayOfWeek.THURSDAY;
                case 5:
                    return DayOfWeek.FRIDAY;
                case 6:
                    return DayOfWeek.SATURDAY;
                case 7:
                    return DayOfWeek.SUNDAY;
                default:
            }
            return DayOfWeek.SUNDAY;
        }
    
        public static boolean isSameDay(Date date1, Date date2) {
            return org.apache.commons.lang3.time.DateUtils.isSameDay(date1, date2);
        }
    
        public static Date addDays(Date date, int days){
            return org.apache.commons.lang3.time.DateUtils.addDays(date, days);
        }
    
        public static int compareTime(Date date1, Date date2){
            int     t1;
            int     t2;
            t1 = (int) (date1.getTime() % (24*60*60*1000L));
            t2 = (int) (date2.getTime() % (24*60*60*1000L));
            return (t1 - t2);
        }
    
        public static boolean isValidTonight(Date date1, Date date2){
            Instant instant1 = date1.toInstant();
            ZoneId zone = ZoneId.systemDefault();
            LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant1, zone);
            LocalTime localTime1 = localDateTime1.toLocalTime();
    
            Instant instant2 = date2.toInstant();
            LocalDateTime localDateTime2 = LocalDateTime.ofInstant(instant2, zone);
            LocalTime localTime2 = localDateTime2.toLocalTime();
    
            LocalTime now = LocalTime.now();
    
            if(localTime1.isBefore(localTime2) && now.isBefore(localTime2)){
                return true;
            }else if(localTime1.isAfter(localTime2) && (now.isAfter(localTime1)||now.isBefore(localTime2))){
                return true;
            }
            return false;
        }
    }
    

     

     

    展开全文
  • JavaStringDate、Timestamp之间的转换

    万次阅读 2017-01-15 21:36:33
    一、StringDatejava.util.Date)互 // 1.1、String -> Date @org.junit.Test public void testStringToDate() throws ParseException { String dateStr = "2010-05-04 12:34:23"; //注意f

    一、String与Date(java.util.Date)互转

     

        // 1.1、String -> Date
        @org.junit.Test
        public void testStringToDate() throws ParseException {
            String dateStr = "2010-05-04 12:34:23";
    
            //注意format的格式要与日期String的格式相匹配
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf.parse(dateStr);
            System.out.println(date.toString()); // Tue May 04 12:34:23 CST 2010
        }
    
        // 1.2、Date -> String
        @org.junit.Test
        public void testDateToString() {
            Date date = new Date();
            //format的格式可以任意
            DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
    
            String dateStr = sdf.format(date);
            System.out.println(dateStr); //2017/01/15 13:52:05
    
            dateStr = sdf2.format(date);
            System.out.println(dateStr); // 2017-01-15 13/52/05
        }
    

     

     

    二、String与Timestamp互转

        //  2.1 String ->Timestamp
        // 使用Timestamp的valueOf()方法
        @org.junit.Test
        public void testStringToTimestamp() {
            // 注:String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!
            // 如果String为其他格式,可考虑重新解析下字符串,再重组~~
            String tsStr = "2011-05-09 11:49:45";
            Timestamp ts = Timestamp.valueOf(tsStr);  // 2011-05-09 11:49:45.0
            System.out.println(ts);
        }
    
        //  2.2 Timestamp -> String
        @org.junit.Test
        public void testTimestampToString() {
            Timestamp ts = new Timestamp(System.currentTimeMillis());
            DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
            //方法一:优势在于可以灵活的设置字符串的形式。
            String tsStr = sdf.format(ts);
            System.out.println(tsStr);  // 2017-01-15 21:17:04
            //方法二
            tsStr = ts.toString();
            System.out.println(tsStr); // 2017-01-15 21:17:04.7
        }
    

     

    三、Date( java.util.Date )和Timestamp互转

      声明:查API可知,Date和Timesta是父子类关系
        public class Timestamp extends java.util.Date {

     

     

     

        // 3.1 Timestamp -> Date
        @org.junit.Test
        public void testTimestampToDate() {
            Timestamp ts = new Timestamp(System.currentTimeMillis());
            Date date = ts;
            System.out.println(date);  // 2017-01-15 21:31:47.801
    //        很简单,但是此刻date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中。
    
            date = new Date(ts.getTime());
            System.out.println(date); // Sun Jan 15 21:31:47 CST 2017
        }
    
        //    3.2 Date -> Timestamp
        //  父类不能直接向子类转化,可借助中间的long~~~~
        @org.junit.Test
        public void testDateToTimestamp() {
            Date date = new Date();
            Timestamp ts = new Timestamp(date.getTime());
            System.out.println(ts); // 2017-01-15 21:33:32.203
        }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Java Date转StringString转Date

    千次阅读 2018-10-25 23:15:36
    一、Date转String //Date类型转为String Date date = new Date(); //设置字符串格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date...

    一、Date转String 

            //Date类型转为String
            Date date = new Date();
            //设置字符串格式
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String dateString = simpleDateFormat.format(date);

    二、String转Date 

            //String类型转为Date
            String dateString = "2018-10-25";
            //注意String的格式要与simpleDateFormat设置的格式相同!
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date date = simpleDateFormat.parse(dateString);


    附上SimpleDateFormat函数语法:
              G 年代标志符
              y 年
              M 月
              d 日
              h 时 在上午或下午 (1~12)
              H 时 在一天中 (0~23)
              m 分
              s 秒
              S 毫秒
              E 星期
              D 一年中的第几天
              F 一月中第几个星期几
              w 一年中第几个星期
              W 一月中第几个星期
              a 上午 / 下午 标记符
              k 时 在一天中 (1~24)
              K 时 在上午或下午 (0~11)
              z 时区

    展开全文
  • 1. String转Date //将String转换为Date String dateString = "2020-02-12 20:55:09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = df.parse(dateString); } ...
  • JavaString转换成Date类型(Date转换成String类型)

    万次阅读 多人点赞 2019-09-19 10:03:05
    1.String转换成Date类型 SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); String time = "2019-09-19"; Date date = ft.parse(time) 2.Date转换成String类型 SimpleDateFormat ft = new ...
  • Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { ...
  • java String转Date问题

    千次阅读 2015-12-03 17:04:49
    String dateStr="2015-15-12"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date = sdf.parse(dateStr);  java.text.ParseException: Unparseable date: "2015-15-12" at java.t
  • 一、StringDate(java.util.Date)的转换  1、String--->Date  String str="2014/1/11 12:34:25";  Date date=new Date();  DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); ...
  • java String转换成Date

    2018-03-22 10:56:06
    @GET @Path("findByDob/{dob}") @Produces({"application/json"}) public List<Resident> findByDob(@PathParam("dob") String dob) { ... 各位大神,我想问问如何将这个String转换成Date格式。。。。。
  • 一、StringDate(java.util.Date)的转换  1、String--->Date  String str="2014/1/11 12:34:25";  Date date=new Date();  DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //这里...
  • 1.string格式转化为Date对象: //把string转化为date DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd"); Date date = fmt.parse(szBeginTime); test.setStartTime(date);    注意:引入的是:...
  • java String转Date类型 格式不变

    千次阅读 2012-03-18 16:57:28
    数据库时间设置的是Date类型的字段,要将String类型的时间Date类型的时间,然后去查数据库。 String time = "2012-12-12"; Date date = java.sql.Date.valueOf(time); System.out.println(date); 打印出来...
  • Java日期格式转化工具(date格式转为string格式,string转datestring转timestamp类型)
  • 本文目前提供:LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与StringDate与LocalDateTime互 文中都使用的时区都是东8区,也就是北京时间。这是为了防止服务器设置时区错误时导致时间不对,如果您是...
  • java通用日期转换(string date

    千次阅读 2018-06-28 10:42:16
    java通用日期转换(string date) 这是自己工作是写的一个工具类,记录下来,以后要用直接copy,这个工具主要实现的是将任意格式的字符串转换为data格式(当然,首先你的日期必须是个日期才行) 主要判定...
  • Java中String转为Date的小例子

    千次阅读 2012-06-08 16:52:56
    场景:有一个String,需要转为Date,例如“Fri Jun 08 15:22:40 CST 2012”。 解决方法:使用SimpleDateFormate的parse()方法 示例代码: import java.text.DateFormat; import java.text.ParseException; ...
  • java String转sql date

    千次阅读 2013-08-05 13:53:31
    String date="1987-10-10"; java.sql.Date.valueOf(date);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 728,668
精华内容 291,467
关键字:

java中string转date

java 订阅