首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用c++中的mktime在windows上创建1970年之前的unix时间戳。

在Windows上使用C++中的mktime函数创建1970年之前的Unix时间戳是不可能的。因为mktime函数是根据本地时区和日历规则来计算时间戳的,它无法处理1970年之前的时间。

然而,可以使用其他方法来实现这个目标。一种方法是使用第三方库,例如Boost库中的date_time模块,它提供了更灵活的日期和时间处理功能。你可以使用该库中的ptime类来表示1970年之前的时间,并通过其成员函数获取对应的时间戳。

另一种方法是手动计算时间戳。Unix时间戳是从1970年1月1日00:00:00 UTC开始的秒数。你可以通过计算给定日期和时间与1970年1月1日之间的秒数差来得到时间戳。以下是一个示例代码:

代码语言:cpp
复制
#include <iostream>
#include <ctime>

int main() {
    struct std::tm timeinfo = {0};
    timeinfo.tm_year = 69;  // 1969年
    timeinfo.tm_mon = 11;   // 12月
    timeinfo.tm_mday = 31;  // 31日
    timeinfo.tm_hour = 23;  // 23时
    timeinfo.tm_min = 59;   // 59分
    timeinfo.tm_sec = 59;   // 59秒

    std::time_t timestamp = std::mktime(&timeinfo);
    std::cout << "Unix timestamp: " << timestamp << std::endl;

    return 0;
}

请注意,这种方法仅适用于1970年之前的时间,且不考虑闰秒等特殊情况。对于更复杂的日期和时间计算,建议使用专门的日期时间库来处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pytorch的C++端(libtorch)在Windows中的使用

前言 填一个之前的坑啊,本篇的姊妹篇——利用Pytorch的C++前端(libtorch)读取预训练权重并进行预测 这篇文章中已经说明了如何在Ubuntu系统中使用libtorch做预测,当初也有朋友问我如何在...Windows之下尝试使用libtorch,当时因为时间关系没有去看,后来就给忘了…现在有时间了当然要尝试一下~ 当然先说结论哈,其实在Windows环境下的配置也是很简单的,因为官方已经替我们编译好的...Windows版本的libtorch,这下就节省了我们编译Pytorch的时间,直接可以拿来使用,只要稍微配置一下就可以在Windows跑起libtorch了,没有想象中那么多的步骤,大可放心。...下文中使用的代码和之前在Ubuntu中使用的完全相同,我们不需要进行修改。 同样,首先,我们在官网下载适合于Windows的libtorch,因为稳定版出来了,所以我们可以直接拿来使用。...关于模型 这里还有一点需要注意,使用libtorch导入的模型必须是和libtorch相匹配版本的Pytorch导出的模型,也就是说如果我拿我之前在linux端导出的模型(之前我在linux端导出的模型使用的

1.1K40

c++ 获取时间戳_C++那些事之时间转换

参考链接: C++ mktime() C++那些事之时间转换   1.导语   首先感谢各位对《C++那些事》的持续关注,也感谢各大公众号的推荐!...目标1:请使用C/C++获取Linux的当前时间,并转换成你想要的格式,例如:2020-06-04 11:12:01,然后再转为Unix时间戳,例如:1591240321,最后计算当前时间与之前的某个时间的间隔...目标2:请完成字符串转Unix时间戳。   上述可以通过C++11的chrono实现,感兴趣的可以实现一下,本节通过Linux函数来实现。  ...strftime将tm格式化为对应的时间格式。   最后,如何完成目标1中的计算当前时间与之前的某个时间的间隔,是相差多少天,还是相差多少秒,还是相差多少分钟等等呢?  ...3.总结   时间转换非常灵活本节使用的时间函数是Linux系统库函数后面推展可以使用c++11的时间chrono库   作者建立了一个《C++那些事》交流群,目前200人+,人数有限,点击公众号右下角

3.4K00
  • C++那些事之时间转换

    目标1:请使用C/C++获取Linux的当前时间,并转换成你想要的格式,例如:2020-06-04 11:12:01,然后再转为Unix时间戳,例如:1591240321,最后计算当前时间与之前的某个时间的间隔...目标2:请完成字符串转Unix时间戳。 上述可以通过C++11的chrono实现,感兴趣的可以实现一下,本节通过Linux函数来实现。...2.实践 首先引入tm结构体,很多人估计没听过tm,tm是时间的一个结构体。 具体结构在,time.h。...上述几个函数解释: mktime 将参数tm所指的tm结构数据转换成时间戳(秒数)。...strftime将tm格式化为对应的时间格式。 最后,如何完成目标1中的计算当前时间与之前的某个时间的间隔,是相差多少天,还是相差多少秒,还是相差多少分钟等等呢?

    2K20

    php时间函数 time()和Date()详解

    在PHP中,对日期处理的函数都必须用到由time()返回的时间戳值。同时,由于PHP在Unix和Windows系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。...我想使用date()函数无疑令人感到厌烦。  在开始的时候,我提及我们有两种方式可以从Unix时间戳值中得到有用的数据。我们刚刚了解了date()和strftime()。另一个getdate()。...如果我们需要的并非目前日期和时间的Unix时间戳值,我们该咋办?下面是一些练习可以帮助说明我们后面所要做的。  正如前面所见,mktime()使用以下参数:小时、分、秒、月、天和年。...现在如果我们需要在目前的时间上加上19个小时,我们用$hours+19代替mktime()函数中的$hours。mktime()将自动为我们将时间转到第二天。  ? ...(详细说明见PHP4中README.BCMATH)。PHP4的Windows版本则不需要做任何修补即可直接使用BC高精度函数。

    6.9K60

    PHP获取当前时间、年份、月份、日期和天数

    语法: date(format,timestamp) 其中参数 format 为显示格式,参数 timestamp 为时间戳,是可选择的,默认为 time() ,即如果没有给出时间戳则使用本地当前时间。...> checkdate:检验日期的有效性 程序开发过程中,在需要设计填写日期和时间的模块中,有时会因为录入失误,而产生错误。...> 通过 PHP mktime() 创建日期 date() 函数中可选的时间戳参数规定时间戳。 mktime() 函数返回日期的 Unix 时间戳。...Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。...语法: mktime(hour,minute,second,month,day,year) 使用 mktime() 函数中的一系列参数来创建日期和时间: 实例: <?

    24.3K10

    Linux时间戳转换_时间戳转换软件

    大家好,又见面了,我是你们的朋友全栈君。 在大多数 UNIX 系统中,当前时间存储为自特定时刻以来经过的时间以简化,将时间保持为长整数。...Linux 时间戳date命令 例如,如果我们希望找到 2022 年 1 月 1 日的 UNIX 时间戳,我们可以使用 date 命令。...反过来也是可能的,我们采用 UNIX 时间戳并将其转换为日期表示。 为了取回我们的原始日期,我们可以传递如图所示的 UNIX 时间戳来转换它。...在国际上,为了统一起见,我们使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。...tm_isdst 字段中指定的值通知 mktime() 夏令时 (DST) 在 tm中提供的时间是否有效结构:正值表示夏令时生效;零表示 DST 无效;负值意味着 mktime() 应该(使用时区信息和系统数据库

    15.7K30

    MAC电脑上的神功能“一指禅”,在Windows系统中也能使用

    大家都知道,在苹果家的产品中,所有的系统都是不开源的。这使得苹果系统中的环境非常的好,而且同时也拥有很多高效便捷的小功能。...而我们经常使用的WIN系统,拜开源所赐,没有什么系统中的软件或者功能是WIN系统复制不出来的。...所以今天macdown小编就来给大家推荐一款工具,就算在WIN系统中也能使用MAC系统中的神功能—“一指禅”。...比如说我想知道一个Word文档中的内容是不是我所需要的,一般情况下只能打开这个文档去浏览,而我们大家都知道Word的启动速度相对来说并不是那么的迅速,所以如果使用“一指禅”来预览这个文档的话,就会节省出很多的时间...而QuickLook就是在WIN系统中实现“一指禅”这个功能的工具,虽然它本身的体积可能比较大,但它占用的系统资源非常少,不会影响系统的流畅度,几乎可以忽略不计。

    1.5K40

    php中时间戳等相关小概念笔记

    首先说下时间戳吧,因为工作需要,对接接口时要用到各种类型的时间戳,所以抽个时间把这些时间戳整理了下....如果想看看返回的时间戳对不对,这里有个在线转换工具,可以试试时间戳在线转换 获取当前的时间戳是最简单的 格式如下: $test = time(); 它返回当前的 Unix 时间戳.这是返回的结果1487839316...))); 这个获取的是当前日期下的零时零点零分的时间.打印如下结果:2017-02-23 00:00:00 但是这里直接使用strtotime获取的并不是这个时间,他实际返回的是2017-02-23...date('d') + 1; 顺便说下mktime(时,分,秒,月,日,年),它是取得一个日期的 Unix 时间戳....获取身份证中出生日期的时间戳 首先说下如何从身份证中获取出生日期,当然,在这之前,要知道身份证有15位的和18位的,所以如果是15位的要转换成18位的,方便计算.

    1.3K30

    使用strptime函数时遇到的一个坑

    做新专辑排序的需求时,需要对专辑的时间进行排序,由于目前该字段是字符串类型的日期,在排序函数中要转成标准的UNIX时间戳来进行对比,大概代码如下: struct tm tm1; strptime(string...("2018-01-18").c_str(), "%Y-%m-%d", &tm1); time_t t1 = mktime(&tm1); std::cout << t1 << endl; struct..."true" : "false") << endl; 一个很简单的字符串转时间戳进行比较的逻辑,但是运行后发现,mktime()返回的时间戳很随机,明显有异常。...3175021632//错误的时间戳 1320966000 result:true ... 2765263112//错误的时间戳 1320966000 result:true 查看mktime()的API...因此,解决方法就是在使用strptime()之前,对结构体进行零初始化(zero-initialize) struct tm tm1 = {0}; ... struct tm tm2 = {0};

    2.2K80

    常用模块~PHP时间戳与日期.

    第1章 Unix 时间戳 Unix 时间戳: 自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 ....相关函数: time() --- 函数返回一个当前系统的时间戳 mktime( ) --- 取得一个日期的 Unix 时间戳 格式:int mktime(时[,分[,秒[,月[,日[,年[,is_dst...echo "当前系统的时间戳:".time(); //秒数 //mktime -- 给我一个年月日时分秒,我返还给你一个时间戳,用的非常少 echo "获取指定日期2033-2-12的时间戳:".mktime..."获取3天前的时间戳:".strtotime('-3 day'); echo "获取3天后的时间戳:".strtotime('3 day'); 第2章 在 PHP 中获取日期和时间 getdate -...如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()(当前时间戳)。

    3.5K00

    UNIX时间戳和北京时间的相互转换

    什么是时间戳 准确的说,应该是unix时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。...注意这里直接换算出的是北京时间,如果用时间戳直接转换的话,得到的时间UTC/GMT时间,和北京时间相差8个小时,在原始时间戳加上8个小时再进行转换就是北京时间了。...在线转换 下面介绍在Keil环境下,或者是C语言环境下,利用time.h头文件中的两个函数实现UNIX时间戳和标准北京时间之间的转换方法。...头文件time.h介绍 如果使用C库函数进行转换,使用之前先要包含对应的头文件: #include 头文件中有一个比较重要的结构体: /* 时间戳类型,单位为秒,与uint32_t类型一样...时间戳转北京时间 输入毫秒级时间戳,调用系统函数,把时间戳转换为UTC时间,为了得到北京时间,在转换之前要先加上8个小时的补偿时间: #include "time.h" ..... int main(void

    11.3K40

    python 查看、修改文件属性

    st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。 st_atime: 上次访问的时间。 st_mtime: 最后一次修改的时间。...st_ctime: 由操作系统报告的”ctime”。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。...,并转为时间戳 In [153]: test_new_mtime = time.mktime(time.strptime('2017-07-29 23:50:22', '%Y-%m-%d %H:%......: M:%S')) # 设置新的上次访问时间,并转为时间戳 In [154]: test_new_atime = time.mktime(time.strptime('2016-07-30 23..., test_new_mtime)) # 获取修改后的文件属性 In [156]: new_test_stat = os.stat('test.txt') # 查看修改后的修改时间 In [160]

    2.2K20

    Python 中的 time 模块

    写代码时,常常会遇到处理时间和日期的问题。在 Python 中,与时间处理最相关的模块是 time 和 datetime。今天我们介绍下 time 模块的常用功能。...在之前代码的基础上 asc = time.asctime(local) print(asc) 输出 Sat Oct 8 16:34:01 2016 time.mktime(tupletime) 接受时间元组并返回时间辍...print(time.time()) 输出 1475917025.59118 在实际应用中,这个函数也经常被用于查看一个代码片的执行时间。...在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。...而在WINDOWS中,第一次调用,返回的是进程运行的实际时间,而第二次之后的调用是自第一次调用以后到现在的运行时间。

    81180

    Python模块:time模块

    time模块: python中处理时间的基础模块,有时间戳,元组,自定义,三种时间表现形式。 python中时间戳的值是以1970年1月1日0点开始计算的,单位是秒。 时间戳:就是两个时间差的数值。...如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。time.altzone返回一个整数tzset()使用环境变量TZ的值,重新初始化时间相关设置。无返回值。...时间元组)返回时间戳,不可缺省参数 把时间元组转变成时间戳,精确到秒mktime((2018, 1, 16, 4, 22, 0, 1, 16, 0)) 1516076520.0clock()返回当前cpu...Windows下,在第一次调用的时候,返回的是程序运行的实际时间;以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔 在Unix/Linux下返回的是CPU时间time.clock()返回一个时间戳...一些例子:     1、当时时间的前三天 #方法一:时间戳上加减一天的时间间隔:86400秒 import time print(time.ctime(time.time()-86400*3))

    1.9K40
    领券