1、PDT時間轉北京時間
做了個小東西,時間是PDT,而且月份也是英文的。寫了個小函數,有用得著的直接copy去:)
有更好的實現方法,請回複。
-
- uses DateUtils;
- function ConvertPDTDateTime(Str: string): TDateTime;
- const
- EngMonthName: array[1..12] of string = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
- var
- I: Integer;
- fs: TFormatSettings;
- begin
- fs.ShortDateFormat := 'mm-dd-yy';
- fs.LongDateFormat := 'mm-dd-yyyyy';
- fs.DateSeparator := '-';
- fs.TimeSeparator := ':';
- fs.LongTimeFormat := 'hh:nn:ss';
- fs.ShortTimeFormat := 'hh:nn:ss';
- fs.TwoDigitYearCenturyWindow := 50;
- for I := 1 to 12 do
- begin
- Str := StringReplace(Str, EngMonthName[I], IntToStr(I), [rfIgnoreCase]);
- end;
- Result := StrToDateTime(Str, fs);
- //PDT是Pacific Daylight Time的簡稱,意思是太平洋夏令時
- //指的是美國西部時間
- //-8區 和北京平時差16小時 4-10月夏令時差15小時
- if Pos('PDT', Str) > 0 then
- begin
- if MonthOf(Result) in [4..10] then
- Result := IncHour(Result, 15)
- else
- Result := IncHour(Result, 16);
- end;
- end;
-
調用方法:ConvertPDTDateTime('Oct-21-08 12:01:10 PDT')
2、關於條件編譯:
如果你希望使用命令列dcc32.exe編譯工程,請cd到dpr所在目錄,否則條件變數可能無法生效(至少我{$I xxx.inc}進來的無效。