时间,字符串,时间戳在mysql,JavaScript和java中的相互转化

1 mysql中时间格式的转换

1.1字符串格式转时间格式

mysql> SELECT DATE_FORMAT('20160910101010','%Y-%m-%d %h:%i:%s');
+---------------------------------------------------+
| DATE_FORMAT('20160910101010','%Y-%m-%d %h:%i:%s') |
+---------------------------------------------------+
| 2016-09-10 10:10:10                               |
+---------------------------------------------------+

mysql> SELECT DATE_FORMAT('2016-09-10 10:10:10','%Y-%m-%d %h:%i:%s');
+--------------------------------------------------------+
| DATE_FORMAT('2016-09-10 10:10:10','%Y-%m-%d %h:%i:%s') |
+--------------------------------------------------------+
| 2016-09-10 10:10:10                                    |
+--------------------------------------------------------+

mysql> SELECT DATE_FORMAT('2016/09/10 10:10:10','%Y-%m-%d %h:%i:%s');
+--------------------------------------------------------+
| DATE_FORMAT('2016/09/10 10:10:10','%Y-%m-%d %h:%i:%s') |
+--------------------------------------------------------+
| 2016-09-10 10:10:10                                    |
+--------------------------------------------------------+

1.2 时间格式转化为字符串格式

mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2016-10-26 09:46:24 |
+---------------------+

mysql> SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %h:%i:%s');
+----------------------------------------+
| DATE_FORMAT(NOW(),'%Y-%m-%d %h:%i:%s') |
+----------------------------------------+
| 2016-10-26 09:46:52                    |
+----------------------------------------+

mysql> SELECT DATE_FORMAT(NOW(),'%Y%m%d%h%i%s');
+-----------------------------------+
| DATE_FORMAT(NOW(),'%Y%m%d%h%i%s') |
+-----------------------------------+
| 20161026094705                    |
+-----------------------------------+

mysql> SELECT DATE_FORMAT(NOW(),'%W %Y%m%d%h%i%s');
+--------------------------------------+
| DATE_FORMAT(NOW(),'%W %Y%m%d%h%i%s') |
+--------------------------------------+
| Wednesday 20161026094811             |
+--------------------------------------+

1.3 时间戳转化为时间格式

mysql> SELECT FROM_UNIXTIME(123456789,'%Y-%m-%d %h:%i:%s');
+----------------------------------------------+
| FROM_UNIXTIME(123456789,'%Y-%m-%d %h:%i:%s') |
+----------------------------------------------+
| 1973-11-30 05:33:09                          |
+----------------------------------------------+

1.4 时间格式转化为时间戳格式

mysql> SELECT UNIX_TIMESTAMP(NOW());
+-----------------------+
| UNIX_TIMESTAMP(NOW()) |
+-----------------------+
|            1477447745 |
+-----------------------+
mysql> SELECT UNIX_TIMESTAMP("20161025");
+----------------------------+
| UNIX_TIMESTAMP("20161025") |
+----------------------------+
|                 1477324800 |
+----------------------------+

a.mysql里字符串格式很多时候可以直接看做时间格式不需要转换
b.以为为各个格式的含义

%W 星期名字(Sunday……Saturday)  
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)  
%Y 年, 数字, 4 位  
%y 年, 数字, 2 位  
%a 缩写的星期名字(Sun……Sat)  
%d 月份中的天数, 数字(00……31)  
%e 月份中的天数, 数字(0……31)  
%m 月, 数字(01……12)  
%c 月, 数字(1……12)  
%b 缩写的月份名字(Jan……Dec)  
%j 一年中的天数(001……366)  
%H 小时(00……23)  
%k 小时(0……23)  
%h 小时(01……12)  
%I 小时(01……12)  
%l 小时(1……12)  
%i 分钟, 数字(00……59)  
%r 时间,12 小时(hh:mm:ss [AP]M)  
%T 时间,24 小时(hh:mm:ss)  
%S 秒(00……59)  
%s 秒(00……59)  
%p AM或PM  
%w 一个星期中的天数(0=Sunday ……6=Saturday )  
%U 星期(0……52), 这里星期天是星期的第一天  
%u 星期(0……52), 这里星期一是星期的第一天  
%% 一个文字“%”。

2 javascript中时间格式的转换

2.1 字符串转化为时间

new Date("2016/10/24")
Mon Oct 24 2016 00:00:00 GMT+0800 (中国标准时间)
new Date("2016-10-24 20:20:20")
Mon Oct 24 2016 20:20:20 GMT+0800 (中国标准时间)

2.2 时间转化为字符串

function dateFormat(date){
    return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+''+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()
}
dateFormat(new Date())
"2016-10-26 10:31:2"

2.3 时间戳转化为时间

new Date(1234567890)
Thu Jan 15 1970 14:56:07 GMT+0800 (中国标准时间)

2.4 时间转化为时间戳

new Date().getTime()
1477449262187

3 java中时间格式的转换

    /**
     * 时间格式化为字符串
     */
    public static void changeDateToString() {
        Date currentTime = new Date();
        //转化为大年24小时制
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        System.out.println(dateString);
        //转化为小年24小时制
        SimpleDateFormat formatter1 = new SimpleDateFormat("yy-MM-dd HH:mm:ss");  //16-10-24 14:02:58
        String dateString1 = formatter1.format(currentTime);
        System.out.println(dateString1);
        //转为为大年12小时制
        SimpleDateFormat formatter2 = new SimpleDateFormat("yyyyMMddhhmmss");
        String dateString2 = formatter2.format(currentTime);
        System.out.println(dateString2);
    }
    /**
     * 字符串格式转化为日期格式
     */
    public static void changeStringToDate() {
        String str1="20150910031111";
        ParsePosition pos1 = new ParsePosition(0);
        //大年24小时制
        SimpleDateFormat formatter11 = new SimpleDateFormat("yyyyMMddHHmmss");
        Date d11 = formatter11.parse(str1,pos1);
        System.out.println(d11);
        //大年12小时制,不能用
        //SimpleDateFormat formatter12 = new SimpleDateFormat("yyyyMMddhhmmss");//
        //Date d12 = formatter12.parse(str1,pos1);
        //System.out.println(d12);
        String str2="150912031111";
        ParsePosition pos2 = new ParsePosition(0);
        //小年24小时
        SimpleDateFormat formatter2 = new SimpleDateFormat("yyMMddHHmmss");
        Date d2 = formatter2.parse(str2,pos2);
        System.out.println(d2);
        String str3 = "22222015-02-10 11:11:11";
        ParsePosition pos3 = new ParsePosition(4);
        SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d3 = formatter3.parse(str3,pos3);
        System.out.println(d3);
    }
    /**
     * 日期格式转化为数字格式
     */
    public static void changeDateToLong() {
        Date date =new Date();
        long d = date.getTime();
        System.out.print(d);
    }
    /**
     * 数字格式转化为日期格式
     */
    public static void changeLongToDate(){
        long d = System.currentTimeMillis();
        Date date = new Date(d);
        System.out.print(date);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值