精华内容
下载资源
问答
  • java日期去掉时分秒,只保留年月日
    万次阅读
    2019-07-30 14:57:46
    public class Test {
        public static void main(String[] args) {
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            Date date = new Date(); // date 包括时分秒
            String s = sdf.format(date); // 把带时分秒的 date 转为 yyyy-MM-dd 格式的字符串
            try {
                Date date2 = sdf.parse(s); // 把上面的字符串解析为日期类型
                System.out.println(sdf.format(date2));
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }

     

    更多相关内容
  • 原文:...import java.text.DateFormat;import java.util.Calendar;import java.util.Date;public class Test {public void getTimeByDate(){Date ...

    原文:http://www.cnblogs.com/zcw-ios/articles/3326503.html

    package com.util;

    import java.text.DateFormat;

    import java.util.Calendar;

    import java.util.Date;

    public class Test {

    public void getTimeByDate(){

    Date date = new Date();

    DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日

    System.out.println(df1.format(date));

    DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒

    System.out.println(df2.format(date));

    DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒

    System.out.println(df3.format(date));

    DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)

    System.out.println(df4.format(date));

    DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)

    System.out.println(df5.format(date));

    DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)

    System.out.println(df6.format(date));

    DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)

    System.out.println(df7.format(date));

    }

    public void getTimeByCalendar(){

    Calendar cal = Calendar.getInstance();

    int year = cal.get(Calendar.YEAR);//获取年份

    int month=cal.get(Calendar.MONTH);//获取月份

    int day=cal.get(Calendar.DATE);//获取日

    int hour=cal.get(Calendar.HOUR);//小时

    int minute=cal.get(Calendar.MINUTE);//分

    int second=cal.get(Calendar.SECOND);//秒

    int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天

    System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日 "+hour+"时"+minute+"分"+second+"秒 星期"+WeekOfYear);

    }

    public static void main(String[] args) {

    Test t=new Test();

    t.getTimeByDate();

    System.out.println("****************************");

    t.getTimeByCalendar();

    }

    } 这里有个博客http://www.blogjava.net/xiaoyi/articles/295044.html,里面有一些常用方法的实现,可以参考,自己在优化

    展开全文
  • 随手查了下,发现解决方案有很多,作为一个菜鸟来说 有必要整理一下-、-我用的是hibernate自己生成的表,所以util Date在mysql 只有年月日 而没有时分秒然后我在Struts2 全局配置里设置了时间类型转换器xwork-...

    因为用到这个东西了,随手查了下,发现解决方案有很多,作为一个菜鸟来说 有必要整理一下-、-

    我用的是hibernate自己生成的表,所以util Date在mysql  只有年月日 而没有时分秒

    然后我在Struts2  全局配置里设置了时间类型转换器xwork-conversion.properties

    在这个工具类中没有格式化时间格式:

    public class DateTypeConverter extends DefaultTypeConverter {

    @Override

    public Object convertValue(Map context, Object value,Class toType) {

    SimpleDateFormat dateFormat= new SimpleDateFormat("yyyyMMdd");

    try {

    if(toType == Date.class){

    String[] params = (String[])value;

    return dateFormat.parse(params[0]);

    }else if(toType == String.class){

    Date date = (Date)value;

    return dateFormat.format(date);

    }

    } catch (ParseException e) {

    e.printStackTrace();

    }

    return null;

    }

    所以数据转换的时候自动加入了时分秒,

    解决

    展开全文
  • Date数据存入mysql数据库后,时分秒消失不见,归为0。 参考: 一、问题描述 console 在java里Date date = new Date();后得到的uploadtime=Wed Nov 11 16:56:12 CST 2020, offtime=Wed Nov 11 16:56:12 CST 2020 ...

    〇、前情提要

    Date数据存入mysql数据库后,时分秒消失不见,归为0。
    参考:

    1. java日期格式Date,Timestamp存入数据库
      https://www.cnblogs.com/shelly0307/p/10420303.html
    2. java.sql.Date和java.util.Date区别及使用
      https://blog.csdn.net/maoyuanming0806/article/details/78011700
    3. Java 如何存取MySQL datetime类型
      https://www.cnblogs.com/latiny/p/8613352.html

    一、问题描述

    console

    在java里Date date = new Date();后得到的uploadtime=Wed Nov 11 16:56:12 CST 2020, offtime=Wed Nov 11 16:56:12 CST 2020
    在这里插入图片描述

    数据库

    数据库中16:56:12消失
    在这里插入图片描述
    说明:java.sql.Date 只存储日期数据不存储时间数据


    二、java.sql.Date和java.util.Date区别

    原文:
    java.sql.Date和java.util.Date区别及使用
    https://blog.csdn.net/maoyuanming0806/article/details/78011700

    java.sql.Date是java.util.Date的子类

    在这里插入图片描述
    三个类都是对应与jdbc处理日期格式的类,有不同的日期精度和格式

    日期格式

    java.sql.Date只包含年月日信息,YYYY-MM-DD。

    当我们调用ResultSet的getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。

    如果你是 2017-09-17 15:15:25 这样的时间点存取数据,那么存在数据库中的值就是:2017-09-17 00:00:00

    类型转换

    如果把java.sql.Date值通过PrepareStatement的setDate方法存入数据库时,java程序会对传入的java.sql.Date规范化,非规范化的部分将会被劫取。

    然而,我们java.sql.Date一般由java.util.Date转换过来,如:java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()).

    显然,这样转换过来的java.sql.Date往往不是一个规范的java.sql.Date.要保存java.util.Date的精确值,我们需要利用java.sql.Timestamp.

    注:假若sqltime是java.sql.Date类型对象、utiltime是java.util.Date类型对象

    java.util.Date 转 java.sql.Date

    java.sql.Date s = new java.sql.Date(util.getTime());

    java.sql.Date 转 java.util.Date

    java.util.Date u = sqltime;

    注意:给java.util.Date赋值java.sql.Date,会自动舍去时分秒。


    三、java获取Timestamp类型的当前系统时间 格式:yyyy-MM-dd HH:mm:ss

    原文:
    java日期格式Date,Timestamp存入数据库
    https://www.cnblogs.com/shelly0307/p/10420303.html

    方法1:

    Timestamp t = new Timestamp(System.currentTimeMillis());
    preparedStatement.setTimestamp(1,t);

    方法2:

    Date date = new Date();
    Timestamp t= new Timestamp(date.getTime());
    preparedStatement.setTimestamp(1,t);

    方法3:

    java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());


    四、在DaoImpl层实践

    代码

    Connection conn = DBUtil.getConnection();
    		String sql = " ";
    		try {
    			PreparedStatement prep = conn.prepareStatement(sql);
    			prep.setTimestamp(6, new java.sql.Timestamp(new java.util.Date().getTime())); 
    			prep.setTimestamp(7, new java.sql.Timestamp(new java.util.Date().getTime())); 
    
    			prep.executeUpdate();
    			
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally{
    			DBUtil.close(conn);
    		}
    

    在这里插入图片描述

    成功

    在这里插入图片描述
    为什么间隔了两天才处理这个问题呢?因为我去当工具人了…日行一善…给自己攒人品吧。


    五、将数据从mysql数据库中取出来后显示时分秒

    参考:
    Java 如何存取MySQL datetime类型
    https://www.cnblogs.com/latiny/p/8613352.html

    提取数据

    如果要从MySQL中获取yyyy-MM-dd HH:mm:ss 日期格式,首先必须使用 rs.getTimestamp(“insert_dt”)方法,其中"insert_dt" 是数据库时间字段,类型为datetime;然后通过SimpleDateFormat 时间格式化类,将取出来的时间转为String类型

    • 先来对比rs获取不同日期时间格式的方法

      System.out.println(rs.getDate(“insert_dt”));
      System.out.println(rs.getTime(“insert_dt”));
      System.out.println(rs.getTimestamp(“insert_dt”));

    • 输出结果:

      2018-03-19
      22:03:21
      2018-03-19 22:03:21.0

    • 可以看到通过getTimestamp获取的日期格式最后还有一位数(2018-03-19 22:03:21.0),需要将rs.getTimestamp(“insert_dt”) 转为String类型

      String timeStamp = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format(rs.getTimestamp(“insert_dt”));
      System.out.println(timeStamp);

    • 输出结果:

      2018-03-19 21:51:57

    在DaoImpl层实践

    与显示相关的是在DaoImpl层里写的查询方法

    public List<media> findAllMedia(int sysType) {
    		//1.获取连接
            String sql = "你的sql语句";
            Connection conn = DBUtil .getConnection();
    		// 创建集合,存储所有查询内容
    		List<media> ms = new ArrayList<media>();
    		try {
    			PreparedStatement prep = conn.prepareStatement(sql);
    			// 执行sql语句 得到结果集rs
    			ResultSet rs = prep.executeQuery();
    			
    			// 处理结果集,遍历获得每条通讯录记录并存储到集合中保存,返回
    			while(rs.next()) {
    
    //                Date uploadtime = rs.getDate("uploadtime");
    //                Date offtime = rs.getDate("offtime");
    //				  m.setUploadtime("uploadtime");
    //                m.setOfftime("offtime");
                   
                    m.setUploadtime(rs.getTimestamp("uploadtime"));
                    m.setOfftime(rs.getTimestamp("offtime"));
                    
    				//将上述查到的数据封装到al上
    				ms.add(m);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBUtil.close(conn);
    		}
    		return ms;
    	}
    

    在html中实践

    例子为在表格中显示时间

    <%String uploadtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(m.getUploadtime()); %>
    <td><%=uploadtime  %></td>
    

    测试

    可以成功显示
    在这里插入图片描述


    六、新的问题

    显示时间与数据库里的时间不符

    在这里插入图片描述
    在这里插入图片描述

    比较数据

    日期一样时间相差八小时

    参考:
    关于从数据库获取DateTime数据少了八个小时/N个小时的问题
    https://blog.csdn.net/Utaokii/article/details/109612269

    解决方式:在连接数据库时设置时区
    在这里插入图片描述

    jdbc:mysql://localhost:3306/sqzp?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT&useSSL=true
    
    //将其中 serverTimezone=GMT 改为 serverTimezone=Asia/Shanghai 即可
    
    jdbc:mysql://localhost:3306/sqzp?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&useSSL=true
    
    

    读取到的时间变为正确
    在这里插入图片描述

    测试上传时间是否能对应在这里插入图片描述


    展开全文
  • Hibernate在保存和更新Date类型的数据到数据库的时候,如果设置不当,会舍弃时分秒,和数据库中Date类型的精确度不符(如Oracle的Date是带时分秒的).引起的原因主要是mapping文件中的字段类型被设成了type="date",而...
  • Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。两个类型的时间可以相互转化。util.Date转sql.Date代码...
  • 关于Oralce数据库的日期时间查询:下面我们先来看一组日期数据表:myDate列:time;1998-8-7 23:45:33.31998-8-7 11:22:21.51998-8-7 00:00:00.0上面列出的这组日期数据我们通过SQL来进行查询SQL:SELECT time FROM ...
  • 返回的字段使用 JsonSerialize, 指定自定义日期转换类 将 Date 转换为 LocalDateTime 格式化时间 代码 dto类 /** * 执行时间 */ @JsonSerialize(using = DateToTimeSerializer.class) private Date ex...
  • java技术 |字号 订阅昨天,阿堂(网络时空)在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是...
  • 我们一般再将实体类中的日期类型的数据写入数据库的时候,需要把java.util.Date转换为java.sql.Date,我们使用常规的方法去转换,转换过来的只可以得到年月日。如果需要取得时分秒,可以使用Date类的子类Timestamp。 ...
  • 问题:存入数据库的Date类型只有年月日,没有时分秒我尝试过几种方式,结果都是年月日,明明有些地方可以有时分秒...后来想到,所有和时间有关的地方,有一个地方我没有去注意。我是用jboss的hibernate插件生成的...
  • java.sql.Time可以直接插入数据库,但是它只有时间,没有日期Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp...
  • java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示...
  • java日期格式(年月日时分秒毫秒) package test.remote.tools.combine; import java.text.SimpleDateFormat; import java.util.Calendar; imp ... 随机推荐 薪资至少10K的一道题,你能拿下吗 我所了解的华为: 应届...
  • java日期类型对象通过mybatis向数据库中的存取一、数据库中的日期数据类型数据库中的日期数据类型有四种:date、datetime、timestimp、time。date类型只保存年月日,不保存时分秒,datetime和timestimp保 存年月日...
  • Java8中对于java.util.Date只取年月日(时分秒清零)的对象 方法1.废弃的方法(@Deprecated) // 如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日 // 最简单的办法是调用setHours,setMinutes,...
  • 用mysql存储日期时,取出来页面怎么去掉时分秒Java codetable:CREATE TABLE `t_person` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`pwd` varchar(20) NOT NULL,`age` int(11) NOT ...
  • mybatis 查询出的日期没有时分秒

    千次阅读 2018-06-04 12:57:05
    mapper 文件如下: [code="xml"] [/code] 实体类中字段定义如下: ...java"...mysql中createtime字段是timestamp类型,但是查询后,实体类中的createtime的值只有年月日,时...
  • time为时分秒;datetime为年月日时分秒 pgsql数据库中,Date为年月日,timestamp为年月日时分秒 b.mybatis中jdbcType: #{create_time,jdbcType=DATE}改为 #{create_time,jdbcType=TIMESTAMP} 秒带小数点问题...
  • 众所周知,Oracle中的日期类型有Date,Timestamp等多种类型,当我们使用ResultSet.getDate()来获取上述类型的数据时,即使数据库中保存的数据包含时分秒的信息,但是获取出来的数据仍然不会包含时分秒的信息。...
  • 皕杰报表(关于日期时间时分秒显示不出来)
  • 一、关于向MySQL数据库中插入时间只有日期没有时分秒  java.util.Date是不能直接插入数据库中的,虽然它包含了日期时分秒。  java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;  java.sql.Time...
  • 在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是有“年月日是分秒”的。  这里说明一下,...
  • 使用Date接收datetime类型数据时分秒都为0 遇到这种问题,很大程度上都是mybatis中做结果映射时,jdbcType的类型给的不对。 一、先按照如下链接检查: json 得到时分秒为00:00:00,拿不到时分秒 解决办法 二、检查...
  • java.util.Date转换为java.sql.Date带时分秒  java.util.Date需要转换为java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Date的子类Timestamp Java在向数据库中插入时间的时候,常常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,036
精华内容 1,614
关键字:

java日期类型只有时分秒

java 订阅