【C语言】日期时间转秒数
日期时间转秒数
将例如“2020年8月14日 12:30:15”的日期时间转换为从1970年1月1日0时0分0秒开始至今的UTC时间秒数,不计闰秒。(中国大陆、中国香港、中国澳门、中国台湾与UTC的时差为+8)。
示例
#include <stdio.h>
#include <time.h>
#include <string.h>time_t datetime2sec(int year, int mon, int day, int hour, int min, int sec)
{struct tm tt;memset(&tt, 0, sizeof(tt));tt.tm_year = year - 1900;tt.tm_mon = mon - 1;tt.tm_mday = day;tt.tm_hour = hour;tt.tm_min = min;tt.tm_sec = sec;return mktime(&tt);
}int main()
{printf("%lld\n", datetime2sec(1970, 1, 1, 8, 0, 0)); printf("%lld\n", datetime2sec(2020, 8, 14, 12, 30, 15));return 0;
}
/*output
0
1597379415
*/
time_t类型
#include <time.h>
typedef /* unspecified */ time_t;
虽然C标准没有规定,但是建议使用long long类型来存储time_t类型的值,以确保暂时不溢出。
tm结构
#include <time.h>
struct tm{int tm_sec; // 秒 [0, 60] (C99之前的范围是[0, 61])int tm_min; // 分 [0, 59]int tm_hour; // 小时 [0, 23]int tm_mday; // 日 [1, 31]int tm_mon; // 月 [0, 11]int tm_year; // 年 [1900, ~]int tm_wday; // 星期几 [0, 6] 从星期日开始int tm_yday; // 天数 [0, 365]int tm_isdst; // 夏时令,若有效为正值,无效为0,无可用信息为负值
};
tm结构中变量的范围虽然有规定,但是超出范围时也有效,比如:
- datetime2sec(1970, 1, 1, 8, 0, 999); // 999
- datetime2sec(2020, 7, 45, 12, 30, 15); // 1597379415
mktime函数
#include <time.h>
time_t mktime( struct tm *time );
成功返回从纪元开始计算的秒数,失败则返回 -1(即time_t溢出)。
技巧
如何计算2008年2月的最后一秒
2008年2月有多少天呢?并不需要知道。
- datetime2sec(2008, 3, 1, 0, 0, 0) - 1;
【C语言】日期时间转秒数相关推荐
- java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....
我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...
- C 语言日期时间处理
前言 在标准C中, 日期和时间的处理包含在 time.h 的头文件中. 需要使用日期和时间相关的类型的函数的话, 需要导入time.h. 本篇介绍的部分有: 1. 日期时间相关的类型 2. 日期时间相 ...
- java计算时间的秒数差,去掉周末和节假日
java计算时间的秒数差,去掉周末和节假日 如题所说,计算两个时间的秒数(工作日),拿到这个需求,首先想到的就是怎么去掉周末和节假日,或者两个时间有一个在周末或节假日,或者两个时间都在,要分别进行处理 ...
- java计算两个日期相差的秒数
/*** 计算两个日期相差的秒数** @param startDate* @param endDate* @return*/public static int calLastedTime(Date s ...
- C计算1970年到现在时间的秒数
//*********************************************** //函数功能:计算1970年到现在时间的秒数 //入口参数:Y,M,D,h,m,s当前的年,月,日, ...
- 【Windows】windows10时间显示秒数
一般情况下windows10的电脑时间只显示小时和分钟,但是有的用户想要时间显示更加精细,那么windows10时间怎么显示秒呢?大家可以通过修改注册表的方式进行设置:打开注册表编辑器,定位到Adva ...
- 【Windows】windows10 时间显示秒数
windows10 时间显示秒数 1.win+R打开运行对话框,输入 regedit回车,打开注册表编辑器 2.在注册表编辑器中找到 HKEY_CURRENT_USER > SOFTWARE & ...
- php获取当前时间的秒数
php获取当前时间的秒数 解决方法: 其中time() 函数返回从1970-01-01 00:00:00起到现在的时间的秒数. 用法:http://www.yayihouse.com/yayishu ...
- python 获取 文件修改时间 距离 当前时间 天数 秒数
一个文件的修改时间(时间元组类型)距离当前时间的天数/秒数 示例如下: import datetime from datetime import timedelta import osfilemt1= ...
最新文章
- oracle 创建用户、授权、表空间
- python的就业方向和前景-2020年Python就业方向、就业前景分析
- eclipse中一个项目引用另一个项目的方法
- Express请求处理-构建模块化路由
- K8S部署hazelcast
- VTK:Rendering之Model
- 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
- angular 内容投影
- 在GridView开头插入自动编号的方法
- zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)
- 一个项目工程的重构小结
- c语言对字符串逆序,【C语言】 字符串逆序
- Word怎么删除空白页?6个方法随便用!
- 2018美国大学计算机科学,美国大学计算机2018最新排名
- 金士顿U盘被写保护的解决方法(量产)
- tushare获取沪深300指数历史_tushare正确爬取 指数数据
- excel保存快捷键_实例演示:Excel表格数据很少但文件很大,教你如何瘦身缩小...
- DNS 动态域名解析
- amazon - FileZilla 连接 amazon云服务器
- Manjaro 美化与调优
热门文章
- 玩转步进电机控制,自定义中文编程
- 全国程序员薪酬大曝光!看完我酸了,33% 程序员月薪达到.....
- android设备获取 关于手机-》手机名称
- vue的简单使用3-v-for、v-if、v-show等指令的使用
- OSChina 周日乱弹 ——我2018年的目标是什么?
- PR调色 日常Vlog街拍时尚视频博客视频调色PR预设
- 互联网老炮儿谈用户,怎一个精字了得
- Zepto课程-张晓飞-专题视频课程
- html怎么取消转义字符,正确取消html字符的转义
- 【大学生软件测试基础】长方体体积 - 边界测试