因工作需要,经常跟时间戳打交道,但是因为它仅仅是一个数字,我们很难直接看出它有什么意义,或两个时间戳之间究竟差了多长的间隔。于是从MSDN for Visual Studio6上找到了时间戳转换成日期时间的算法。本文除介绍这一算法外,还提供一个示例代码。

1、将时间戳转换成一串32比特的二进制数。有些数字转换之后不够32位,则在前面补充0。这可通过windows自带的计算器完成。比如481522543转换成

0001 1100 1011 0011 0111 0011 0110 1111

2、根据下面格式转换各个字段为10进制数字

YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS

0001 1100 1011 0011 0111 0011 0110 1111

Y = year = 0000 1110 = 14

M = month = 0000 0101 = 5

D = day = 0001 0011 = 19

H = hour = 0000 1110 = 14

M = minutes = 0001 1011 = 27

s = seconds = 0000 1111 = 15

注意最右边一位在从日期转换到时间戳的时候砍掉了,因此我们秒这一字段要在最右端加一个补充的0。本例中为 s = seconds = 0 0001 1110 = 30。也因为此,转换后日期时间的“秒”字段总是一个偶数:-)

3、特殊处理:

年这一字段从1980开始计算,因此要加上1980才是正确年份。

这样481522543最终转换成:1994/05/19 14: 27: 30

示例程序如下

/* File name: ts2tm.c

Converts an decimal timestamp to human-readable format

by sillyboard(sillyboard@tom.com)

*/

#include

#include

#include

struct date_time

{

short dt_year;

short dt_month;

short dt_day;

short dt_hour;

short dt_minute;

short dt_second;

}dt;

short bits_per_field[6] = {7, 4, 5, 5, 6, 5};

int main(int argc, char** argv)

{

long timestamp;

int i, j;

unsigned long mask = 0x80000000;

short bit;

int accum;

short* walker;

if (argc != 2)

{

fprintf(stderr, "Usage: %s decimal-timestamp/n", argv[0]);

exit(1);

}

timestamp = atol(argv[1]);

walker = &dt;

for (i = 0; i < 6; i ++)

{

accum = 0;

for (j = 0; j < bits_per_field[i]; j ++)

{

bit = (timestamp & mask) ? 1 : 0;

if (bit)

{

accum += pow(2, bits_per_field[i] - 1 - j);

}

mask = mask >> 1;

}

*walker ++ = accum;

}

dt.dt_second <<= 1;

printf("%s/t", argv[1]);

printf("%d-%d-%d %d:%d:%d/n", dt.dt_year + 1980, dt.dt_month,

dt.dt_day, dt.dt_hour, dt.dt_minute, dt.dt_second);

return;

}

这篇文章暂时就介绍这么多,具体的大家可以参考编程圈以前的文章。

linux c++ 时间戳转换,C++时间戳转换成日期时间的步骤和示例代码相关推荐

  1. PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]

    PHP获取当前时间.时间戳的各种格式写法汇总[日期时间] 原文:PHP获取当前时间.时间戳的各种格式写法汇总[日期时间] 今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的 ...

  2. java datetime 转换_如何实现Java日期时间格式转换

    Java日期时间以及日期相互转换 Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseExcept ...

  3. mysql将时间戳转化为天数_mysql 将时间戳直接转换成日期时间

    我的应用:select *,FROM_UNIXTIME(create_at, '%Y-%m-%d') as date from stock 转载原文: FROM_UNIXTIME( ):转为时间戳类型 ...

  4. 时间戳转为年月日时分秒格式, 日期时间比较

    1.自定义方法转换 把时间戳 转为 年-月-日 时:分:秒 格式 // 小于10前面补0function add0 (m) {return m < 10 ? '0' + m : m }funct ...

  5. mysql带中文日期转换_【MySQL】日期时间格式转换_MySQL

    bitsCN.com [MySQL]日期时间格式转换 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: www.bitsCN.com mysql> ...

  6. mysql 将时间戳_mysql 将时间戳直接转换成日期时间

    date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 后面的 '%Y%m%d' 主要是将返回值格式化 例如: mysql>SELECT FROM ...

  7. mysql 将时间戳直接转换成日期时间,mysql查询某一天的数据。

    FROM_UNIXTIME( ):转为时间戳类型时间 UNIX_TIMESTAMP( ) :返回长整形类型时间 1 2 3 SELECT * FROM yi_order WHERE FROM_UNIX ...

  8. list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码

    前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型).第一反应,我想肯定要用到"泛型"(这不是废话吗?都说了要转换成Lis ...

  9. php输出时间的写法,PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]

    使用strtotime可以将各种格式的时间字符串转换为时间戳 转换常规时间格式echo date('Y-m-d H:i:s', strtotime('2016-01-30 18:00')).PHP_E ...

  10. 【转】PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]

    今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的含义,可灵活变通. 1.获取当前时间方法date() 很简单,这就是获取时间的方法,格式为:date($format, $ ...

最新文章

  1. MSN8.0测试邀请发放
  2. 数据库事务隔离技术之 Next-Key Locks
  3. __getattr__在python2.x与python3.x中的区别及其对属性截取与代理类的影响
  4. 前端QRCode.js生成二维码(解决长字符串模块和报错问题)
  5. 接口测试常用工具及测试方法(新手篇)
  6. 1688API接口,item_get_app - 获取1688app上原数据
  7. html5总结2000字,建筑识图实训总结2000字6篇范文
  8. 总数量超过五十个,史上最全的爬虫项目集合
  9. 车牌识别系统开发记录(四) 国内车牌特点
  10. CSC与Roslyn编译
  11. mac os重置服务权限
  12. Python爬虫:老兵不死,用数据纪念2019男篮世界杯
  13. HTML+CSS 仿写京东网站界面
  14. excel 查找图相框或文本框中的内容
  15. Centos7下安装部署Zabbix-server 3.4
  16. A股主板上市需要哪些条件
  17. excel的使用技巧大全
  18. java中的char占几个字节
  19. BDD - BDD Automation Framwork 自动化框架
  20. 携职教育:人力资源师证书有用吗?人力资源师证书怎么考?这个证好考吗?

热门文章

  1. html网页使用js连接mysql_html下利用javascript连数据库
  2. GPS经纬度转84坐标系
  3. 金融数据类——外汇,CFD
  4. HTML5 浏览器检测
  5. mac电脑如何装双系统Linux,苹果电脑双系统怎么装【详细教程分享】
  6. INVT英威腾GD200A系列变频器使用PID实现恒压供水功能的相关参数设置及接线
  7. JavaScript封装自己的库
  8. 海康视频的4G接入-实时浏览
  9. 健康管理师可以从事哪些工作
  10. Mac上很好用的播放器Elmedia Player