Parse string containing date and time in specified format and convert it into datetime.
You can find more information in comments below.
/**
Parse string for specified datetime format and return true if successfully parsed or false otherwise
@param str String for parsing
@param[out] out Datetime structure where to store result
@param format Expected format. Default is "%Y-%m-%d %H:%M:%S"
@param locale Locale used for parsing. Default is current one
@return True is successfully parsed, otherwise - false
@para Possible formats:
- \%a Abbreviated weekday name
- \%A Full weekday name
- \%b Abbreviated month name
- \%B Full month name
- \%c Date and time representation appropriate for locale
- \%d Day of month as decimal number (01 - 31)
- \%H Hour in 24-hour format (00 - 23)
- \%I Hour in 12-hour format (01 - 12)
- \%j Day of year as decimal number (001 - 366)
- \%m Month as decimal number (01 - 12)
- \%M Minute as decimal number (00 - 59)
- \%p Current locale's A.M./P.M. indicator for 12-hour clock
- \%S Second as decimal number (00 - 59)
- \%U Week of year as decimal number, with Sunday as first day of week (00 - 53)
- \%w Weekday as decimal number (0 - 6; Sunday is 0)
- \%W Week of year as decimal number, with Monday as first day of week (00 - 53)
- \%x Date representation for current locale
- \%X Time representation for current locale
- \%y Year without century, as decimal number (00 - 99)
- \%Y Year with century, as decimal number
- \%z, %Z Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
- \%\% Percent sign
*/
bool ParseDateTime(const String &str, tm &out, const String &format = L"%Y-%m-%d %H:%M:%S", const std::locale &locale = std::locale());
/**
Parse ansi string for specified datetime format and return true if successfully parsed or false otherwise
@param str String for parsing
@param[out] out Datetime structure where to store result
@param format Expected format. Default is "%Y-%m-%d %H:%M:%S"
@param locale Locale used for parsing. Default is current one
@return True is successfully parsed, otherwise - false
@para Possible formats:
- \%a Abbreviated weekday name
- \%A Full weekday name
- \%b Abbreviated month name
- \%B Full month name
- \%c Date and time representation appropriate for locale
- \%d Day of month as decimal number (01 - 31)
- \%H Hour in 24-hour format (00 - 23)
- \%I Hour in 12-hour format (01 - 12)
- \%j Day of year as decimal number (001 - 366)
- \%m Month as decimal number (01 - 12)
- \%M Minute as decimal number (00 - 59)
- \%p Current locale's A.M./P.M. indicator for 12-hour clock
- \%S Second as decimal number (00 - 59)
- \%U Week of year as decimal number, with Sunday as first day of week (00 - 53)
- \%w Weekday as decimal number (0 - 6; Sunday is 0)
- \%W Week of year as decimal number, with Monday as first day of week (00 - 53)
- \%x Date representation for current locale
- \%X Time representation for current locale
- \%y Year without century, as decimal number (00 - 99)
- \%Y Year with century, as decimal number
- \%z, %Z Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
- \%\% Percent sign
*/
bool ParseDateTime(const AnsiString &str, tm &out, const AnsiString &format = "%Y-%m-%d %H:%M:%S", const std::locale &locale = std::locale());
Namespace: | nitisa |
Include: | Nitisa/Core/Strings.h |