zoukankan      html  css  js  c++  java
  • 日期格式处理篇

    在编程的时候经常会遇到unix时间戳,那么就在这里总结一下unix时间戳常用的处理,首先应该明白是么是unix时间戳,unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z,一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。

    1.sql语句中将日期格式转化为unix时间戳 select DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

     sql语句中将unix时间戳转化为日期格式 DATEADD(hh,8,DATEADD(s,track_beginTM,'19700101')),unix时间戳转化为日期格式后因为时差的原因需在小时部分加8

    因为,数据库中毫秒数存的是伦敦的格林威治时间,格林威治时间与北京相差时区所以要加八个小时。

    2.编程中获取unix时间戳

    Java time
    JavaScript Math.round(new Date().getTime()/1000) 
    getTime()返回数值的单位是毫秒
    Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
    MySQL SELECT unix_timestamp(now())
    Perl time
    PHP time()
    PostgreSQL SELECT extract(epoch FROM now())
    Python 先 import time 然后 time.time()
    Ruby 获取Unix时间戳:Time.now 或 Time.new 
    显示Unix时间戳:Time.now.to_i
    SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
    Unix / Linux date +%s
    VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", Now())
    其他操作系统 
    (如果Perl被安装在系统中)
    命令行状态:perl -e "print time"

     3.js中毫秒数(unix时间)转化为普通的 年月日格式,得到毫秒数的小时部分。

    两个unix时间(毫秒日期时间)差.getHours() 得到的是时差的 1970-01-01 08:00:00为基准的时差。

  • 相关阅读:
    Linux shell(3)
    Linux shell 编写(2)
    Linux shell 编写(1)
    团队冲刺(一)
    峦码团队任务表
    电梯演讲&界面展示说明
    第一次小组会议——NABCD讨论
    开发项目&团队介绍
    Linux中查看各文件夹大小命令:du -h --max-depth=1
    shell脚本[] [[]] -n -z 的含义解析
  • 原文地址:https://www.cnblogs.com/yony/p/2548737.html
Copyright © 2011-2022 走看看