gpt4 book ai didi

c++ - 将字符串中的日期转换为 FILETIME

转载 作者:行者123 更新时间:2023-11-27 23:22:55 30 4
gpt4 key购买 nike

我有一个 imput .txt 文件,其中包含一个日期。日期采用 DDMONYY 格式,如 08JUN98 或 16NOV05。我需要将此日期与文件的创建日期进行比较,看看哪个更快。

FILETIME 似乎是合适的形式,特别是因为有一个 CompareFileTime 函数。但是,我在将日期转换为文件时间时遇到问题。

我可以从文件中提取日期并将其转换为数字(第 1-31 天,第 1-12 个月,1900-20 年等等),所以我不需要这方面的帮助,但无论如何请随时发表评论.

真正的问题是我不知道如何将这些值转换为 FILETIME 格式。现在我将它们作为三个不同的字符串(或者 int's,如果有帮助的话)一个用于日、月和年。如果您能帮助我从字符串跳转到 FILETIME,那就太好了。

或者,如果我在研究过程中遗漏了一个完全更好的方法,请随时提出建议。

如果你愿意,我可以发布我拥有的内容,但我认为这不会有帮助,因为它只涉及字符串/整数。


如果它能让它更清楚的话,此时我在我的变量中的值,对于 2002 年 5 月 3 日,将是一些类似的东西

string day = "03";
string month ="5";
string year = "2002;
int dayint = 3;
int monthint = 5;
int yearint = 2002;

我需要一种方法将其转换为 FILETIME

非常感谢。


编辑:

我不确定如何填充 SYSTEMTIME 结构,甚至不知道如何为不同的时间系统填充。所以我想这更像是我的问题。

我还应该提到我只需要天数的准确性。时间和任何更小的事情对我来说都不是真正关心的。


编辑2:

我一定没有尝试给 SYSTEMTIME int 值,因为这似乎有效。但是,当我尝试将该系统时间转换为文件时间时遇到了问题。它指出“错误:不存在从“SYSTEMTIME”到“const SYSTEMTIME *”的合适转换”。我不确定如何解决这个问题,因为如果我将 systime 变量定义为 const SYSTEMTIME,我就无法为其赋值。

这是相关代码,如果有帮助的话

SYSTEMTIME systime;
LPFILETIME ftime1;
LPFILETIME ftime2;
int dayint=6;
int monthint=12;
int yearint=1989;

systime.wDay = dayint;
systime.wMonth = monthint;
//and so on for year, hour, etc.
SystemTimeToFileTime(systime,ftime1); //This is where the aforementioned error occurs
GetFileTime(filename, NULL, NULL, ftime2); //I'm also not sure about this line... feel free to critique it. I'm only interested in the last written time so I put NULL for the other times... When I check the values for this (in SYSTEMTIME) it only returns 52428, so I don't think this line is working correctly...
CompareFileTime(ftime1,ftime2);

当然,实际代码中并没有硬编码日、月、年的值。


编辑3:

我手感不好....

我会尝试解决这个问题......感谢您的帮助,Ben Voigt如果我不能得到它,我想我会回来

最佳答案

可以填写一个SYSTEMTIME结构,然后调用SystemTimeToFileTime

之后您可能需要使用 LocalFileTimeToFileTime,具体取决于您是要指定 UTC 时间还是本地时间。

关于c++ - 将字符串中的日期转换为 FILETIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533061/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com