c++ - 将字符串转换为 TDateTime 变量

标签 c++ string typeconverter tdatetime

我正在使用 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函数。

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 对象的重载,该对象可用于提供元数据以解析具有特定语言环境格式的日期。

关于c++ - 将字符串转换为 TDateTime 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446360/

相关文章:

c++ - C语言监控Windows操作系统进程

c++ - 错误: redefinition of function template (or C2995)

c++ - 与 mkstemp 等效的 C++ 标准库是什么?

java - Apache Camel 中的多种类型转换器

java - 将 2 维数组 String 转换为 2 维数组 Double

c++ - macOS 上使用 cpptools 1.71.1+ : When trying to compile code in C++, 的 VS Code "-std=gnu++14"出现在所有标志之前。怎么删除呢?

java - 减少 ToStringBuilder (apache commons) 的内存使用?

javascript - 固定整数 Google 脚本的字符串数字

java - 如何检查一个字符串是否包含另一个字符串的一部分? (不是整个字符串)

java - 通过使用超过 1 个深度级别的 map 从 csv 转换为 json