[英]Converting string to TDateTime in C++Builder 2009
我嘗試使用C ++ Builder 2009將特定格式的字符串轉換為TDateTime
:
TDateTime dt, dt2;
TFormatSettings FS, FS2;
UnicodeString datestring = "17/10/2017 13:24:33";
UnicodeString datestring2 = "2017.17.10 13:24:33";
FS.DateSeparator = '/';
FS.ShortDateFormat = "dd/mm/yyyy";
FS.LongTimeFormat = "hh:nn:ss";
FS.TimeSeparator = ':';
FS2.DateSeparator = '.';
FS2.ShortDateFormat = "yyyy.dd.mm";
FS2.LongTimeFormat = "hh:nn:ss";
FS2.TimeSeparator = ':';
try{
dt = StrToDateTime(datestring, FS);
dt2 = StrToDateTime(datestring2,FS2);
}catch(EConvertError& e)
{
int a = 2;
}
dt
轉換可以,但是dt2
轉換會引發異常:
``2017.17.10 13:24:33''不是有效的日期和時間
根據StrToDate()
的文檔(也適用於StrToDateTime()
):
S
必須由兩個或三個數字,通過用定義的字符分隔的DateSeparator
全局變量或其TFormatSettings
等效。 月,日和年的順序由ShortDateFormat
全局變量或其等效的TFormatSettings
確定- 可能的組合為m / d / y,d / m / y和y / m / d 。
失敗日期是y/d/m
格式,這些RTL函數不支持該格式。 支持的日期是d/m/y
格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.