0
我創建了簡單的ObjectiveC動態庫與一個功能MacOS X的動態庫在Delphi XE3項目不正確的工作
NSString* DateTimeToString(NSDate* dt)
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY'-'MM'-'dd'T'HH':'mm':'ss"];
NSString *stringDate = [formatter stringFromDate:dt];
[formatter release];
return stringDate;
}
正如你可以看到這個功能將在格式返回日期2011-04-14T09:29:53 。
而且我已經集成了該庫到我的Delphi XE3測試項目
function _DateTimeToString(date: Pointer): Pointer; cdecl; external
'libTimeLib.dylib' name '_DateTimeToString';
function DateTimeToString(dt: TDateTime): string;
var
date: NSDate;
res: NSString;
begin
date := TNSDate.Wrap(TNSDate.OCClass.date);
res := TNSString.Wrap(_DateTimeToString((date as ILocalObject).GetObjectID));
Result := string(res.UTF8String);
end;
當我把它從我的德爾福的項目它的XCode項目返回13年5月15日雖然它返回正確2013-05-15T16:42:42日期。
有人能解釋爲什麼NSDateFormatter不能在Delphi應用程序中使用的庫中工作嗎?
UPDATE
我創建這個功能在Delphi
function DateTimeToStringDelphi(): string;
var
formatter: NSDateFormatter;
stringDate: NSString;
begin
formatter := TNSDateFormatter.Create();
formatter.setDateFormat(NSSTR('YYYY-MM-dd HH:mm:ss'));
stringDate := formatter.stringFromDate(TNSDate.Wrap(TNSDate.OCClass.date));
formatter.release;
result := string(stringDate.UTF8String);
end;
而且它也返回日期格式13年5月15日,所以它不是庫的問題。