• java Date时间的各种转换方式和Mysql存时间类型字段的分析


    一:各种Date之间的转换方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public class TimeTest {
     
        public static void main(String[] args) {
            Date date = new Date();  
             
    //      一、获取当前系统时间和日期并格式化输出:
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
            String dateTime = df.format(date); // Formats a Date into a date/time string.
            System.out.println(dateTime);  // 2017-09-24 23:33:20
             
    //      二、Date转换为Datetime
            long longTime = date.getTime();
            Timestamp timestamp = new Timestamp(longTime);
            System.out.println(timestamp); // 2017-09-24 23:33:20.655
             
    //      三、String转换为Date
            String strTime = "2017-09-24 12:00:01";
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date1 = null;
            try {
                date1 = sdf1.parse(strTime);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            System.out.println(date1); // Sun Sep 24 12:00:01 CST 2017
             
    //      四、Date转换为String
            Date date2 = new Date();
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String str1 = format.format(date2);
            System.out.println(str1); // 2017-09-24
             
    //      五、String转化为java.sql.Date
            String str2 = "2017-12-01";
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
            java.sql.Date sDate = null;
            try {
                java.util.Date date3 = sdf2.parse(str2);
                sDate = new java.sql.Date(date3.getTime());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            System.out.println(sDate); // 2017-12-01
             
        }
     
    }

    二:MySQL数据库中的Date,DateTime,TimeStamp和Time类型

      DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”意味着尽管更早的值可能工作,但不能保证他们可以。) 

      DATE类型用在你仅需要日期值时,没有时间部分。MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,支持的范围是'1000-01-01'到'9999-12-31'。

      TIMESTAMP列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。

      TIME数据类型表示一天中的时间。MySQL检索并且以"HH:MM:SS"格式显示TIME值。支持的范围是'00:00:00'到'23:59:59'。

    创建表(MySql)

     

    datetime和timestamp的区别:
    1.datetime 的日期范围比较大;如果有1970年以前的数据还是要用datetime.但是timestamp 所占存储空间比较小。
    2.timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。

    3.timestamp比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响.

    使用一个常用的格式集的任何一个,你可以指定DATETIME、DATE和TIMESTAMP值:
    'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'格式的一个字符串,允许一种"宽松"的语法:任何标点可用作在日期部分和时间部分之间的分隔符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的。

    三:mysql中存入timestamp 类型时间需要java将时间转为其数据库对应的数据格式 

             Date date=new Date();                             
             SimpleDateFormat temp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
             String date1=temp.format(date);  
             Date date2=temp.parse(date1); 

  • 相关阅读:
    无法重用Linq2Entity Query
    The Joel Test
    MSBuilder directly instead of default VSComplie with keyborad shotcut 原创
    客户端缓存(Client Cache)
    关于代码重构和UT的一些想法,求砖头
    ExtJS2.0实用简明教程 应用ExtJS
    Perl information,doc,module document and FAQ.
    使用 ConTest 进行多线程单元测试 为什么并行测试很困难以及如何使用 ConTest 辅助测试
    史上最简单的Hibernate入门简介
    汽车常识全面介绍 传动系统
  • 原文地址:https://www.cnblogs.com/jpfss/p/9628060.html
Copyright © 2020-2023  润新知