linux时间戳转换不对,转换为unix时间戳不正确
我有我写了一个函数(如果有一个很好的标准替代,请让我知道...)转换为unix时间戳不正确
time_t get_unix_time(string time_str) {
time_t loctime;
time(&loctime);
struct tm *given_time;
time_str = time_str.substr(0, time_str.find_first_of('.'));
replace(time_str.begin(), time_str.end(), ':', ',');
replace(time_str.begin(), time_str.end(), '-', ',');
replace(time_str.begin(), time_str.end(), '/', ',');
replace(time_str.begin(), time_str.end(), ' ', ',');
given_time = localtime(&loctime);
vector trecord = split_string(time_str, ',');
given_time->tm_year = atoi(trecord.at(0).c_str()) - 1900;
given_time->tm_mon = atoi(trecord.at(1).c_str()) - 1;
given_time->tm_mday = atoi(trecord.at(2).c_str());
given_time->tm_hour = atoi(trecord.at(3).c_str());
given_time->tm_min = atoi(trecord.at(4).c_str());
given_time->tm_sec = atoi(trecord.at(5).c_str());
return mktime(given_time);
}
输入(time_str)的函数是格式1970-01-01 00:00:00.0。所述split_string()函数把字符串time_str到含有载体:
{1970年,01,01,00,00,00}
其用于填写given_time结构。
我写了一个函数来测试它,并正确地通过它输入(epoch开始)。但是,它给我的时间是21600,这是1970-01-01 06:00:00或UTC + 6。期望的输出是(时期的开始)。
注意:我在美国中部时区,即UTC - 6。1970年1月1日午夜CST,time @ UTC将在1970年1月1日06:00:00。
我的函数中是否有任何特定于我的时区的东西?我在这个函数中做了什么错误,或者我可以做些不同的事情来使它独立于区域,或者至少总是UTC。
2011-01-13
Sagar
+0
此外,我不能使用boost库或任何其他库。我只能使用标准的C++东西。 –
2011-01-13 16:22:55
+1
C++库中的时区处理很隐晦。如果你的环境变量`TZ`的值设置为UTC,那么这段代码就可以工作。 –
2011-01-13 16:36:18
+1
mktime将当前时间解释为给定时间。所以如果你给1970-01-01 00:00:00它会在你的当地时间,所以mktime将返回UTC-0时间,即1970-01-01 06:00:00 –
2011-01-13 16:38:42
linux时间戳转换不对,转换为unix时间戳不正确相关推荐
- linux时间戳转换c语言,Unix时间戳和北京时间的相互转换(C语言实现 )
一.问题背景 最近项目中需要上传包含时间戳的设备数据到服务器平台.原本想把"年","月","日","时","分 ...
- utc秒数 linux时间戳,UTC时间与UNIX时间戳之间的转换
将当前系统时间转换为UNIX时间戳 BASH 1 2 $date +%s 1263236513 +%s是date的格式控制,上面命令的意思其实就是将当前系统时间以UNIX时间戳的形式输出. 如果要将任 ...
- Linux 各种BCD时间与Unix时间戳格式转换
在Linux C或C++编程中,因为应用场景的不同,经常会遇到各种时间之间的装换,有时需要BCD时间,有时需要Unix时间戳,也有叫绝对时间的.这里介绍几种时间格式转换的应用. Unix时间戳: Un ...
- [工具类]将时间转换为unix时间戳格式
写在前面 由于在数据库中存的时间有时间戳格式的数据,在解析以及保存的时候,就需要考虑到数据格式的兼容性问题.看到数据库中的时间字段基本上都是以时间戳格式存储的,没办法,只能将时间进行转换了,考虑到其他 ...
- 使用PHP将任意格式的日期转换为Unix时间戳
在 PHP 中,可以使用 strtotime() 函数将任意格式的日期时间字符串转换为 Unix 时间戳.具体实现可以按照以下步骤: 获取任意格式的日期时间字符串,比如: $date_str = '2 ...
- DateTime时间格式转换为Unix时间戳格式
// DateTime时间格式转换为Unix时间戳格式 public int ConvertDateTimeInt(System.DateTime time) { System.DateTime st ...
- php把北京时间转换时间戳,北京时间与unix时间戳(unix timestamp)的互转方法
unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp),是从1970年1月1日(UTC/GMT的午夜)开始到某一时刻所经过的秒数, ...
- mysql转unix时间戳_mysql日期与unix时间戳互转
#### UNIX时间戳转换为日期用函数: FROM_UNIXTIME(unix_timestamp,format) ```sql select FROM_UNIXTIME(1156219870); ...
- ios linux时间戳转时间,将UNIX时间戳转换为数据 – iOS
我有一个iOS应用程序,它解析数据的 JSON提要.在这个数据中有一些UNIX时间戳,我存储在NSString中.我想要做的是将这些时间戳转换为日期(月和日).但是我试图在没有自己进行任何划分的情况下 ...
最新文章
- mysql 数据库 限制大小_MySQL数据库表各种大小限制小结
- python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串
- create view必须是批处理中仅有的语句_sqlserver 脚本和批处理指令小结
- java.util.NoSuchElementException: No value present
- 【机器学习基础】半监督算法概览(Python)
- springboot2——MyBatis入门
- vue-cli多环境配置
- linux下hba卡服务,在Linux下查看FC HBA卡的速率和状态
- netfilter与用户空间通信
- 万条留言!这本Python凭啥火爆程序员的朋友圈?
- L1-029. 是不是太胖了-PAT团体程序设计天梯赛GPLT
- SmartRoute之远程接口调用和负载
- 【缅怀妈妈系列诗歌】之十三:妈妈,我接您回家
- 程序转换实验程序流程图_智能化实验室 | # 自动智能化实验室的5大系统 #
- JavaSE基础知识点思维导图
- 谭浩强第五版课后习题答案-----第三章
- 局域网技术,涉及到VLAN,TRUNK,链路聚合,VLAN间路由,单臂路由,
- 宇视摄像头安装水晶头防护套步骤
- JDK14之jpackage打包命令
- 【每日一题】 959. 由斜杠划分区域
热门文章
- Spring Data JPA框架
- Android Lambda 表达式使用实例,-
- 为何setRequestMethod(GET)不生效
- 软件质量的理解 摘录
- SVN 405错误
- c# mysql executenonquery_C#中ExecuteNonQuery()返回值注意点分析
- 第14章 任务和特权级保护
- (JAVA)Object类之String类
- cpc卡内计费信息异常包括_今日头条信息流广告投放效果好吗?信息流广告计费方式怎么收费?...
- 【C语言进阶深度学习记录】一 数据类型的本质与变量的本质