我正在使用 C++ 开发预约系统。
能否请我帮忙将字符串转换为 TDateTime 变量。
这是一个我希望得到帮助的示例;
TDateTime appDateTime(2012, 9, 15, 14, 0, 0, 0);
我将其保存到一个文件中(包含其他字符串和 bool 值)。当作为字符串加载时,字符串值为:
15/09/2012 2:00:00 pm
如何将其转换为 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 = %3d\n", DateTime.tm_sec );
printf("tm_min = %3d\n", DateTime.tm_min );
printf("tm_hour = %3d\n", DateTime.tm_hour);
printf("tm_mday = %3d\n", DateTime.tm_mday);
printf("tm_mon = %3d\n", DateTime.tm_mon );
printf("tm_year = %3d\n", DateTime.tm_year);
这很好用。但是,能否请我提供一些帮助,使“stringDateToConvert”能够传递给“strptime”函数。目前我收到以下错误:
E2034 Cannot convert 'string' to 'const char *'
谢谢
最佳答案
SysUtils 中有一个StrToDateTime
函数。
还有一个 StrToDateTimeDef
函数,它在解析失败的情况下采用默认值。
http://docwiki.embarcadero.com/Libraries/XE4/de/System.SysUtils.StrToDateTimeDef
它们都有接受 TFormatSettings 对象的重载,该对象可用于提供元数据以解析具有特定语言环境格式的日期。
关于c++ - 将字符串转换为 TDateTime 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446360/