1

我正在使用 C++ 开发约会系统。

我可以在将字符串转换为 TDateTime 变量方面提供一些帮助吗?

这是一个我需要帮助的例子;

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

我将其保存到文件中(使用其他字符串和布尔值)。当作为字符串加载时,字符串值为:

2012 年 9 月 15 日下午 2:00: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  = %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 *'

谢谢

4

1 回答 1

0

StrToDateTimeSysUtils 中有一个-Function。

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

还有一个StrToDateTimeDef-Function 在解析失败的情况下采用默认值。

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

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

于 2014-08-18T11:09:48.847 回答