我正在使用C ++开发约会系统。
我可以帮助您将字符串转换为TDateTime变量。
这是一个我想要帮助的例子;
TDateTime appDateTime(2012, 9, 15, 14, 0, 0, 0);
我将它保存到一个文件(带有其他字符串和布尔值)。以字符串形式加载时,字符串值为:
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无法将'string'转换为'const char *'
由于
答案 0 :(得分:0)
在SysUtils中有一个StrToDateTime
- 函数。
还有一个StrToDateTimeDef
- 函数,它为解析失败的情况采用默认值。
http://docwiki.embarcadero.com/Libraries/XE4/de/System.SysUtils.StrToDateTimeDef
它们都有重载,接受TFormatSettings-Object,可用于提供元数据以解析具有某些语言环境格式的日期。