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

 

转载自博客:https://www.cnblogs.com/myseries/p/7589408.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值