2014-05-04 48 views
0

有沒有簡單的選項轉換美國TDateTime2014年4月17日下午8時35分38秒PDT到歐洲格式看起來像2014年4月17日20 :35:38轉換美國TDateTime類型值,正常dispay歐洲格式

編輯:

我有含原始日期/時間在美國格式的字符串:

var s, new_s: string; 
begin 
    s := 'Apr 17, 2014 8:35:38 PM PDT'; 

我想以某種方式讀取/解析此字符串TDateTime- 或 -的變量只是把它轉換成所需格式的另一個字符串:

new_s := MyConvertDateTimeSring(s); 
    // now new_s must be '2014-04-17 20:35:38'; 
end; 

(德爾福XE4)

+0

沒有全球*歐洲格式*。例如,我們使用捷克語區域設置中的17.4.2014 20:35:38格式。格式是每個國家。 – TLama

+0

你明白'TDateTime'變量並不是真的存在於這些格式之一中,對嗎?您可以使用任何想要的字符串格式來格式化日期。 –

+2

你的問題當然是如何解析日期/時間*字符串*爲日期*值*。 –

回答

1

如果您從字符串時區PDT那麼你可以使用VarToDateTime將字符串轉換成TDateTime

var 
    LDateTimeStr : string; 
    LDateTime : TDateTime; 
begin 
    LDateTimeStr := 'Apr 17, 2014 8:35:38 PM PDT'; 
    LDateTime := VarToDateTime(Copy(LDateTimeStr, 1, 23)); 
    WriteLn(FormatDateTime('yyyy-mm-dd hh:nn:ss', LDateTime)); 
end; 

其結果將是

2014年4月17日20 :35:38

+0

太棒了!非常感謝你。 'VarToDateTime'和'FormatDateTime'將是我今晚的晚上讀書:) 事實上'LDateTime:= VarToDateTime(複製(LDateTimeStr,1,Pos('PDT',LDateTimeStr)));'會更精確一點可能會有Apr 7而不是Apr 17。 –

+0

這裏的時區部分可能是非常重要的信息。 – TLama

+0

@TLama這是對的,但這不是這個問題的一部分; o) –

相關問題