C++ wxWidgets - Creating wxDateTime from wxString
C++ wxWidgets - Creating wxDateTime from wxString
我有一个包含小时、分钟、秒和毫秒的wxString
。我正试图根据这些信息创建一个wxDateTime
。我可以将其保留为"%H:%M:%S.%f"
格式,也可以单独获取值。
我的第一个想法是使用接收h、m、s、ms的wxDateTime
构造函数,但是我找不到如何在任何地方创建wxDateTime_t
来传递给它。
wxDateTime& wxDateTime(wxDateTime_t hour, wxDateTime_t minute = 0, wxDateTime_t second = 0, wxDateTime_t millisec = 0)
我也一直在研究wxParseTime
,在那里我会使用默认的wxDateTime
构造函数,然后调用它,但我不知道如何将时间作为const wxChar*
正确地传递给这个函数。
const wxChar * ParseTime(const wxChar *time)
有人能对这两个想法中的任何一个有任何见解吗?或者对此有更好的方法吗?
我一直在通过这个网站wxwidgets获取我的信息。
提前感谢您的帮助!
其他信息:wxDateTime::wxDateTime,wxDateTime::wxParseTime。
所以wxParseTime不支持毫秒。不过,传入"%H:%M:%S"
是有效的。
我还发现了这样一条信息:"wxDateTime_t类型被类型化为无符号短,用于包含年、小时、分钟、秒和毫秒的数量。"因此,可以使用类似的东西从wxStrings中生成无符号短。
unsigned long msec = 0;
token.ToULong(&msec);
这可以在传递到wxDateTime& wxDateTime(wxDateTime_t hour, wxDateTime_t minute = 0, wxDateTime_t second = 0, wxDateTime_t millisec = 0)
构造函数中的小时、分钟、秒和毫秒内完成,以创建所需的wxDateTime。
我采用的方法是使用wxParseTime更新wxDateTime对象,然后设置毫秒数。我得到了当前的wxDateTime,因此年/月/日将被预设。
token = lineTkz.GetNextToken(); // Next token is "%H:%M:%S"
const wxChar* constTime = token.c_str(); // Convert from wxString to wxChar*
wxDateTime dateTime = wxDateTime::Now(); // Get current datetime object
dateTime.ParseTime(constTime); // Update hours, minutes, and seconds from wxChar*
token = lineTkz.GetNextToken(); // Next token is milliseconds as wxString
unsigned long msec = 0; // Create unsigned long
token.ToULong(&msec); // Get value out of wxString and save into unsigned long
dateTime.SetMillisecond(msec); // Update wxDateTime's milliseconds using set method
您还可以通过使用bool isValid = dateTime.IsValid();
进行错误检查来验证您是否具有有效的wxDateTime。
您可以检查的另一件事是调用wxParseTime 的返回
const wxChar* bad = dateTime.ParseTime(constTime);
wxParseTime"如果转换失败,则返回NULL,否则返回指向停止扫描的字符的指针。".
希望这能帮助其他遇到这种情况的人。
- 如何解决"invalid conversion from 'char' to 'const char*'"
- std::async from std::async in windows xp
- std::is_reference from std::any
- std::time_point from and to std::string
- "No suitable conversion function from 'std::string' to 'const char *' exists"
- std::chrono::time_point from std::string
- Visual accept std::string from std::byte iterator
- C++中链表的错误"Abort signal from abort(3) (sigabrt) "
- dopen():不以 root 身份运行时"failed to map segment from shared object"
- C++ 中的"template <typename From, typename Tag> struct Alias;"是什么?
- from std::vector to adept::avector
- qt get child (Callout) from QChart
- Webassembly from Javascript
- Generate boost::uuids::uuid from boost::compute::detail::sha
- 什么是"Reading unbounded stream from standard input (Memory Management)"的例子
- Calling C++ dll from python
- 为什么我会收到"invalid conversion from 'Queue*/Stack*' to 'int'"错误消息?
- std::chrono 在从 main 或 from 类方法使用时给出不同的值
- Calling Python Script from Visual Studio C++ Solution
- C++ wxWidgets - Creating wxDateTime from wxString