将字符串转换为TDateTime变量

Converting a string to a TDateTime variable

本文关键字:TDateTime 变量 转换 字符串      更新时间:2023-10-16

我正在使用C++开发一个预约系统。

请帮我把字符串转换成TDateTime变量。

下面是一个我希望得到帮助的例子;

TDateTime appDateTime(2012, 9, 15, 14, 0, 0, 0);

我正在将其保存到一个文件中(带有其他字符串和布尔值)。当作为字符串加载时,字符串值为:

2012年9月15日下午2:00

如何将其转换为TDateTime变量?

感谢

更新

我正试图通过一个使用字符串的构造函数来创建TDateTime变量。这是我的代码:

string stringTestConstructorDate = "12/05/1990";
TDateTime testConstruct(stringTestConstructorDate);

我收到以下错误:E2285找不到"TDateTime::TDateTime(string)"的匹配项

如何使用字符串变量来构造TDateTime变量?

这是我的第二个选项代码:

string stringDateToConvert = "17/09/2012 09:00:02 a.m.";
struct tm DateTime;
if (NULL == strptime("17/09/2012 09:00:02 a.m.", "%D %T", &DateTime)) {
printf("strptime() failed.n");
exit(EXIT_FAILURE);
}
printf("tm_sec  = %3dn", DateTime.tm_sec );
printf("tm_min  = %3dn", DateTime.tm_min );
printf("tm_hour = %3dn", DateTime.tm_hour);
printf("tm_mday = %3dn", DateTime.tm_mday);
printf("tm_mon  = %3dn", DateTime.tm_mon );
printf("tm_year = %3dn", DateTime.tm_year);

这很有效。但是,请帮我把"stringDateToConvert"传递给"strptime"函数。目前我得到以下错误:

E2034无法将"string"转换为"const char*">

感谢

SysUtils中有一个StrToDateTime-函数。

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_StrToDateTime@字符串.html

还有一个StrToDateTimeDef-函数,在解析失败的情况下使用默认值。

http://docwiki.embarcadero.com/Libraries/XE4/de/System.SysUtils.StrToDateTimeDef

它们都有接受TFormatSettings对象的重载,该对象可用于提供元数据以解析具有特定区域设置格式的日期。