用到的函数主要有strftime、strptime 、localtime 、mktime
名词解释:
时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
时间字符串:形如2021-12-01 12:00:00
size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)
作用:strftime将一个tm结构格式化为一个字符串
参数:format为输出数据格式

char *strptime(const char *buf,const char *format,struct tm *timeptr)
作用:strptime则是将一个字符串格式化为一个tm结构。
参数:buf为要修改的时间,一般为GPS时间
Format为数据格式,与buf时间格式必须一致,要不然会有段错误
%Y-%m-%d %H:%M:%S 年-月-日 时:分:秒
其他常见的格式化字符如下表所示:

格式 含义
%a 星期几的简写形式
%A 星期几的全称
%b 月份的简写形式
%B 月份的全称
%c 日期和时间
%d 月份中的日期,0-31
%H 小时,00-23
%I 12进制小时钟点,01-12
%j 年份中的日期,001-366
%m 年份中的月份,01-12
%M 分钟,00-59
%p 上午或下午
%S 秒,00-60
%u 星期几,1-7
%w 星期几,0-6
%x 当地格式的日期

时间戳转时间字符串(strftime)

#include <stdio.h>
#include <string>
#include <time.h>
using namespace std;string convertTimeStamp2TimeStr(time_t timeStamp){struct tm *timeinfo = nullptr;char buffer[80];timeinfo = localtime(&timeStamp);strftime(buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo);printf("%s\n",buffer);return string(buffer);
}int main(void)
{convertTimeStamp2TimeStr(1633071600);  //2021-10-1 15:00:00return 0;
}

时间字符串转时间戳

#include <stdio.h>
#include <string>
#include <time.h>
using namespace std;time_t convertTimeStr2TimeStamp(string timeStr){struct tm timeinfo;strptime(timeStr.c_str(), "%Y-%m-%d %H:%M:%S",  &timeinfo);time_t timeStamp = mktime(&timeinfo);printf("timeStamp=%ld\n",timeStamp);return timeStamp;
}int main(void)
{convertTimeStr2TimeStamp("2021-10-1 15:00:00");return 0;
}

windows下时间字符串转时间戳

由于windows下没有strptime函数,可以使用scanf来格式化时间

#include <stdio.h>
#include <string>
#include <time.h>
#include <iostream>
using namespace std;time_t StringToTimeStamp(string str){struct tm tm_;int year, month, day, hour, minute,second;sscanf(str.c_str(),"%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);tm_.tm_year  = year-1900;tm_.tm_mon   = month-1;tm_.tm_mday  = day;tm_.tm_hour  = hour;tm_.tm_min   = minute;tm_.tm_sec   = second;tm_.tm_isdst = 0;time_t timeStamp = mktime(&tm_);return timeStamp;
}int main(void)
{cout << StringToTimeStamp("2021-10-1 15:00:00") << endl;return 0;
}

结构体tm转time_t

time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数,发生错误时返回-1

time_t转结构体tm

struct tm *localtime(const time_t *timer) 使用 timer 的值来填充 tm 结构。timer 的值被分解为 tm 结构,并用本地时区表示。

C/C++时间字符串和时间戳的相互转化相关推荐

  1. php 字符串转时间戳_php如何将时间字符串转换为时间戳

    php将时间字符串转换为时间戳的方法:可以利用内置函数strtotime()来实现.strtotime()函数可以将任何英文文本的日期或时间描述解析为Unix时间戳,若成功则返回时间戳,否则返回fal ...

  2. golang的time包:时间字符串和时间戳的相互转换

    本博客转自: https://blog.csdn.net/mirage003/article/details/86073046 package mainimport ("log"& ...

  3. 时间字符串与时间戳批量转换

    原文博客地址:https://blog.csdn.net/s1164548515/article/details/100186773 时间字符串与时间戳批量转换 import pandas as pd ...

  4. Scala 将时间字符串转为时间戳

    今天需要将Nginx日志中的时间字符串转为时间戳,再加以分析,由于刚学Scala不久,Java也只是一知半解,所以在时间转换的时候浪费了一些时间,故在此备忘,也希望能帮到有需要的同学. 部分日志格式如 ...

  5. golang时间字符串和时间戳转换

    1. 获取当前时间字符串和时间戳 package mainimport ("fmt""time" )func main() {now := time.Now() ...

  6. java时间字符串转时间戳

    java时间字符串转时间戳 测试类 代码片. @Testpublic void dateToStamp() throws Exception {String str = "2019-03-1 ...

  7. 时间字符串和时间戳的转换

    时间字符串转换为时间戳方法 1.new Date().getTime() new Date('2021-12-14 10:10:00').getTime()  // 1639447800000 2.D ...

  8. Golang获取年月日时间字符串和时间戳

    1.获取字符串时间 //获取年.月.日.时.分.秒 getYear := time.Now().Year() //获取年 getMonth := time.Now().Format("01& ...

  9. LabVIEW中将日期时间字符串转换为时间戳数据说明与例程

    LabVIEW中将日期时间字符串转换为时间戳数据说明与例程 在LabVIEW中,您可以将字符串数据转换为时间戳数据.如果您希望在测量文件中的数据旁边添加时间戳或轻松比较两个数据点之间的时间,则这可能会 ...

最新文章

  1. hive null 值比较大小
  2. mysql升级5.5
  3. 【分享】Web前端开发第三方插件大全
  4. 开源GIS系统关系图
  5. js 中meta 移除head_JS函数和winform函数之间的相互调用
  6. mysql 5.6.21 rpm_centos_mysql5.6.21_rpm安装
  7. 在QT中CXDVA视频组件的例子
  8. 14.go build
  9. jquery 时间选择插件-jedate
  10. Python — — turtle 常用代码
  11. 神经网络(单层感知器)
  12. C# 使用ZXing.net生成一维码(带数字与不带数字)、二维码(带logo与不带logo)
  13. python正则表达式查找(findall)
  14. 猫猫学IOS(六)UI之iOS热门游戏_超级猜图
  15. 2020第十一届蓝桥杯省赛有感_我的奇葩经历
  16. 2----Android手机小白知识全集!! 刚入手
  17. 『51单片机』串口通信配置
  18. 从三驾马车到三叉戟,亚马逊云科技的中国故事
  19. R语言安装ggplot2出现错误,解决方案
  20. 手机运行《仙剑奇侠传》耶~

热门文章

  1. 二, 大数据基础架构Hadoop-HDFS入门和基本操作(基本组成, Shell操作, API操作, 读写流程) hf
  2. ext3文件系统基础
  3. 修改HTK代码,让其支持中文
  4. 时序预测 | python实现仿生算法优化LSTM时间序列预测(全网最全仿生算法)
  5. Zabbix使用SMTP发送邮件报警并且制定报警内容
  6. Linux下载并安装rabbitmq-server-3.6.5-1.noarch.rpm
  7. openresty中应用murmurHash
  8. Spring Boot 2.0 配置图文教程第 2 章 Spring Boot 配置## 书信息 demo.book.name=[Spring Boot 2.x Core Action] demo.b
  9. Python自学笔记1(think python)
  10. Android Snackbar使用方法及小技巧-design