将字符串转换为TDateTime变量

时间:2012-09-16 11:07:04

标签: c++ string typeconverter tdatetime

我正在使用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 *'

由于

1 个答案:

答案 0 :(得分:0)

在SysUtils中有一个StrToDateTime - 函数。

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

还有一个StrToDateTimeDef - 函数,它为解析失败的情况采用默认值。

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

它们都有重载,接受TFormatSettings-Object,可用于提供元数据以解析具有某些语言环境格式的日期。