回答
您可以使用VarToDateTime
,它支持不同的時間(在Variants
單元發現)格式德爾福的RTL沒有。 (它基於COM的日期支持例程,如在各種Microsoft產品中使用的日期支持例程)。我使用您提供的日期進行了測試,它確實將其正確轉換爲TDateTime
。在Delphi 2007和XE2上進行測試。在當前documentation
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils, Variants;
var
DT: TDateTime;
TestDate: String;
begin
TestDate := '02 August 2012 18:53';
try
DT := VarToDateTime(TestDate);
{ TODO -oUser -cConsole Main : Insert code here }
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
Writeln(FormatDateTime('mm/dd/yyyy hh:nn', DT));
Readln;
end.
更多信息,包括使用的另一個樣本(鏈接在該頁面的底部)。
注意功能Variants
單位使用默認的用戶區域設置。如果不是'美國',則上述字符串的轉換可能會失敗。在這種情況下,你最好直接從activex
單位指定在美國地區撥打VarDateFromStr
:
uses
sysutils, activex, comobj;
var
TestDate: String;
DT: TDateTime;
begin
try
TestDate := '02 August 2012 18:53';
OleCheck(VarDateFromStr(WideString(TestDate), $0409, 0, Double(DT)));
Writeln(FormatDateTime('mm/dd/yyyy hh:nn', DT));
Readln;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
但這個函數也有這個錯誤消息的問題:'不能將類型(UnicodeString)的變體轉換爲類型(日期)' – SadeghAlavizadeh 2012-08-02 16:58:38
您的問題沒有提及Unicode,我測試了(正如我剛纔寫的說和提供代碼)在Delphi 2007(AnsiString)和XE2(UnicodeString)版本中。您沒有提供任何信息,這將導致任何人在這裏考慮Unicode問題。 – 2012-08-02 17:04:06
我改變了我的代碼,並把'02八月2012 18:53'放入AnsiString變量,但現在我有這個錯誤:'無法將類型(字符串)的變體轉換爲類型(日期) – SadeghAlavizadeh 2012-08-02 17:10:56
- 1. 如何轉換DateTime?爲DateTime
- 2. 如何將str轉換爲int?
- 3. 如何將python str轉換爲bytearray
- 4. 如何將函數轉換爲str?
- 5. 如何將str轉換爲int?
- 6. 將Python ctypes.Structure轉換爲str
- 7. 如何在Rust中的Impl塊中將str轉換爲&str
- 8. '1' - >'1',如何將左str轉換爲右str
- 9. 如何將毫秒數轉換爲DateTime?
- 10. 如何將Oracle DateTime轉換爲日期
- 11. 如何將java.sql.Timestamp轉換爲DateTime?
- 12. 如何將Varchar轉換爲Datetime?
- 13. 如何將varchar轉換爲datetime
- 14. 如何將datetime轉換爲短日期?
- 15. 如何將lastlogon從AD轉換爲datetime?
- 16. 如何將SQL日期轉換爲DateTime?
- 17. 如何將DateTime轉換爲JulianDate?
- 18. 如何將SqlDateTime值轉換爲.Net :: DateTime
- 19. 如何將varchar值轉換爲datetime?
- 20. 如何將「mm/yyyy」varchar轉換爲datetime?
- 21. 如何將varchar轉換爲datetime?
- 22. 如何將DateTime轉換爲字符串
- 23. 如何將sqldatetime.minvalue轉換爲datetime?
- 24. 如何將pd.Series轉換爲datetime?
- 25. 如何將Integer8的值轉換爲DateTime?
- 26. 如何將.NET tick轉換爲python datetime?
- 27. 如何將MYSQL DateTime轉換爲NSDate - Swift
- 28. 在np.array(dtype ='datetime')中轉換np.array(dtype ='str')
- 29. 如何轉換爲DateTime
- 30. 將DateTime + TimeZone轉換爲UTC
+1。事實證明,這是一個比起先看起來更難回答的問題。唯一缺少的是關於您正在從文本文件中讀取值以及該文本文件的編碼是什麼的信息,這將是一個非常好的問題 - 所有其他信息都在那裏。 :-) – 2012-08-02 19:19:51
另請參閱[FormatDateTime的反函數](http://stackoverflow.com/q/2503460/576719)。 – 2012-08-02 19:48:33
[將字符串轉換爲基於任意格式的TDateTime]可能的副本(http://stackoverflow.com/questions/3786823/converting-a-string-to-tdatetime-based-on-an-arbitrary-format) – NGLN 2013-09-17 20:48:24