C标准时间与时间戳的相互转换

2023-11-07

什么是时间戳?

  • 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数。它也被称为Unix时间戳(Unix Timestamp)。
  • 时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间

在这里插入图片描述

Demo

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>

/*标准时间转换为时间戳*/
int standard_to_stamp(char *str_time)
{
	struct tm stm;
	int iY,iM,iD,iH,iMin,iS;
	memset(&stm,0,sizeof(stm));
	iY = atoi(str_time);
	iM = atoi(str_time+5);     //和实际输入的格式 有关系
	iD = atoi(str_time+7);
	iH = atoi(str_time+10);
	iMin = atoi(str_time+13);
	iS = atoi(str_time+16);
	stm.tm_year=iY-1900;
	stm.tm_mon=iM-1;
	stm.tm_mday=iD;
	stm.tm_hour=iH;
	stm.tm_min=iMin;
	stm.tm_sec=iS;
	printf("解析后的时间是%d-%d-%d %d:%d:%d\n", iY, iM, iD, iH, iMin, iS);

	return (int)mktime(&stm);

}

/*时间戳转换为标准时间*/
typedef struct times
{
	int Year;
	int Mon;
	int Day;
	int Hour;
	int Min;
	int Second;
}Times;

Times stamp_to_standard(int stampTime)
{
	time_t tick = (time_t)stampTime;
	struct tm tm;
	char s[100];
	Times standard;
	tm = *localtime(&tick);
	strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm);
	printf("时间戳为:%d 转换成标准时间为: %s\n", (int)tick, s);

	standard.Year = atoi(s);
	standard.Mon = atoi(s+5);
	standard.Day = atoi(s+8);
	standard.Hour = atoi(s+11);
	standard.Min = atoi(s+14);
	standard.Second = atoi(s+17);
	
	return standard;
}

int main(int argc, char **argv)
{
	int a =0;

	printf("输入的标准时间是: %s \n",argv[1]);
	
	a=standard_to_stamp(argv[1]);
	printf("标准时间转换为时间戳: %d\n",a);

	stamp_to_standard(a);	

	return  0;
}

运行结果:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C标准时间与时间戳的相互转换 的相关文章

  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • MVC 重定向到没有控制器的视图

    希望应该是一个简单的 我创建了一个通用错误视图 当整个站点的操作方法内发生异常时 我想显示该视图 我创建了一个部分页面 所有导航都位于其中 因此我不需要在此视图上使用控制器 那么如何从控制器内的操作方法重定向到它 像这样的东西 HttpPo
  • 更快的算法来计算有多少数字可以被范围内的特定整数整除

    int a b c d 0 cin gt gt a gt gt b gt gt c for int i a i lt b i if i c 0 d cout lt
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • 为什么派生类不使用基类的operator=(赋值运算符)?

    以下是实际问题的简化版本 而不是打电话Base operator int 代码似乎生成了一个临时的Derived对象并复制它 既然函数签名似乎完美匹配 为什么不使用基本赋值运算符 这个简化的示例没有显示任何不良影响 但原始代码在析构函数中有
  • 在运行时设置 DataGridView 上的 DataFormatString?

    是否可以在运行时设置 ASP NET DataGridView 中的列或单元格的 DataFormatString 属性 这应该有效 BoundField priceField grid Columns 0 as BoundField pr
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 在“using”语句中使用各种类型 (C#)

    自从C usingstatements只是try finally dispose 的语法糖 为什么它接受多个对象仅当它们属于同一类型时 我不明白 因为它们需要的只是 IDisposable 如果它们都实现 IDisposable 应该没问题
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 如何在 VS Code 中为 CMake 项目设置 C/C++ IntelliSense?

    我正在尝试使用 libTooling 编写一个工具 我对其进行了设置 以便它可以使用 LLVM 文档中的示例进行编译 然而 C C IntelliSense 似乎不适用于 CMake 项目 我的工具位于
  • 理解 C++11 中的 std::atomic::compare_exchange_weak()

    bool compare exchange weak T expected T val compare exchange weak 是 C 11 中提供的比较交换原语之一 它是weak即使对象的值等于 它也会返回 falseexpected
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐

  • JMeter之压力测试——混合场景并发

    在实际的压力测试场景中 有时会遇到多个场景混合并发的情况 这时就需要设置不同的并发比例对不同场景请求数量的控制 下面提供两种方案 一 多线程组方案 1 业务场景设计如下 场景A 场景B 场景C 三个场景按照并发比例要求进行100个用户并发的
  • c语言rand的最大值,[讨论]有关rand()生成数的大小..

    讨论 有关rand 生成数的大小 我想生成 bits的随机数 现在想知道rand 最大能生成多少bits的随机数 搜索更多相关的解决方案 rand 成数 解决方案 当然是32位可以表示的最大数 解决方案 可是经过反复测试 是生成的 位的随机
  • 容器化部署zabbix

    一 创建docker compose yml文件 首先创建一份docker compose yml文件 使用docker compose进行容器的编排 mkdri zabbix 在根目录创建zabbix文件 cd zabbix touch
  • Windows蓝屏代码大全及解决提示

    知识点分析 电脑出现蓝屏现象时 由于导致蓝屏现象的原因较多 建议先通过此款软件进行分析 简单确定蓝屏原因 操作步骤 BlueScreenView不需要任何安装过程或额外的DLL文件 只需运行可执行文件 BlueScreenView exe就
  • Linux下Apache Web服务器的安装与配置

    1 Apache Web服务器简述 Web服务是目前Internet应用最流行 最受欢迎的服务之一 Linux平台使用最广泛的Web服务器是Apache 它是目前性能最优秀 最稳定的Web服务器之一 WWW World Wide Web 服
  • 【Qt】控件探幽——QPushbutton

    注1 本系列文章使用的Qt版本为Qt 6 3 1 注2 本系列文章常规情况下不会直接贴出源码供复制 都以图片形式展示 所有代码 自己动手写一写 记忆更深刻 本文目录 QPushButton探幽 1 clicked bool 信号的参数的含义
  • Spring学习-5-JdbcTemplate数据库操作

    针对数据库的操作 Spring框架提供了JdbcTemplate类 该类是Spring框架数据抽象层的基础 可以说 JdbcTemplate类是Spring JDBC的核心类 在JdbcTemplate核心类中 提供了大量的更新和查询数据库
  • Android面试题之性能优化篇,kotlin版权

    1 如何对 Android 应用进行性能分析 不考虑使用其他第三方性能分析工具的话 我们可以直接使用 ddms 中的工具 其实 ddms 工具已经非常的强大了 ddms 中有 traceview heap allocation tracke
  • Ad15的元器件的3D制作

    1 画元器件的封装 2 在中设置元器件的高度以及浮空高度 颜色 3 然后会出现话网格的箭头 进行绘画 此时已完成3d的绘制 按3试一下效果 4
  • Numpy高级数组索引

    NumPy 高级索引 NumPy 比一般的 Python 序列提供更多的索引方式 除了之前看到的用整数和切片的索引外 数组可以由整数数组索引 布尔索引及花式索引 整数数组索引 对于一个二维数组 要获取数组中 0 0 1 1 和 2 0 位置
  • clusterrole访问权限

    什么是RBAC RBAC全称Role Based Access Control 是Kubernetes集群基于角色的访问控制 实现授权决策 允许通过Kubernetes API动态配置策略 什么是Role Role是一组权限的集合 例如Ro
  • cjson 判断字段是否纯在_cJSON API 接口使用说明

    cJSON API 接口使用说明 cJSON的介绍 cJSON是一个轻量级的JSON解析器使用ANSIC标准 所谓的轻量级 如果你的项目需要使用到解析JSON 那么只需要将cJSON的库中的cJSON h和cJSON c放入到你的项目中适当
  • Linux防火墙命令

    文章目录 一 Linux防火墙基本命令 1 查看防火墙状态 2 开启防火墙 3 关闭防火墙 4 重启防火墙 5 禁用防火墙 禁止开机启动 6 开机启用防火墙 开机自启防火墙 7 查看防火墙所有开放的端口 8 开放指定端口号 9 关闭指定端口
  • 解决iframe内使用scrollIntoView导致外部父元素也滚动的问题

    功能场景 解决iframe内使用scrollIntoView导致外部父元素也滚动的问题 滚动原因 使用原生的 element scrollIntoView 时 会同时使 element 所在容器也会进行 scrollIntoView 操作
  • 分享个Java低代码开发平台,免费好用

    概要 1 免费低代码平台 2 天翎低代码平台特色 薅羊毛 免费领低代码平台 在找好用实惠的低代码平台撸毕设 这里有 天翎诚意之作 免费送你低代码平台 为了回馈客户 天翎MyApps平台正式上线了会员系统 用户在会员中心 https mall
  • 1.1 cout/cin/函数 练习

    1 1 cout cin 函数 练习 1 程序 Author may Date 2017 04 21 Function 输入输出 cin cout 练习 函数练习 include
  • (java 基础知识)java序列化和反序列话总结

    序列化 将java对象转换为字节序列的过程叫做序列化 反序列化 将字节对象转换为java对象的过程叫做反序列化 通常情况下 序列化有两种用途 1 把对象的字节序列永久的保存在硬盘中 2 在网络上传输对象的字节序列 相应的API java i
  • 6_sleuth-zipkin-spring_boot_admin 链路追踪

    文章目录 Sleuth zipkin SpringBootAdmin 邮件通知 钉钉通知 如果能跟踪每个请求 中间请求经过哪些微服务 请求耗时 网络延迟 业务逻辑耗时等 我们就能更好地分析系统瓶颈 解决系统问题 Sleuth span 跨度
  • 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士

    还是春寒料峭的季节 一年一度的研究生招生工作正在紧张进行中 从北京大学软件学院传出消息 虽然今年招生人数较多 但生源仍然非常充足 现在软件学院软件工程硕士研究生的报考人数已经是北京大学最集中报考的几个专业之一 所以 今年报考北大软件学院的难
  • C标准时间与时间戳的相互转换

    什么是时间戳 时间戳是指格林威治时间自1970年1月1日 00 00 00 GTM 至当前时间的总秒数 它也被称为Unix时间戳 Unix Timestamp 时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据 通常是一个