有人能告诉我他们是否知道如何获得Android设备系统时间(12或24小时)?我已经搜索了很多,现在尝试导入DateFormat类以使Is24HourFormat函数返回True或False。我注意到在JAVA中调用时你使用'this' - 例如if(DateFormat.is24HourFormat(this)) - 但我不知道从Delphi调用这个函数时会引用什么' - 当我从Delphi中调用这个函数时我会得到一个线程错误我尝试获取默认适配器。这是我在Delphi中的定义:
Type
JDateFormat = interface;
JDateFormatClass = interface(JObjectClass)
['{05CE5465-2953-4CC3-9D9B-01D71E90F412}']
end;
[JavaSignature('android/text/format/DateFormat')]
JDateFormat = interface(JObject)
['{D5C8CAD6-E717-4B95-89F1-A6FD0861B7DB}']
function is24hourformat:boolean;
end;
TJDateFormat = class(TJavaGenericImport<JDateFormatClass, JDateFormat>) end;
.....
procedure TForm1.FormCreate(Sender: TObject);
var
l_x: JDateFormat;
begin
l_x := TJDateFormat.Create;
// determine the Android time format
if not l_x.is24hourformat then
timeedit1.Format := 'hh:mm:ss tt'
else
timeedit1.Format := 'hh:mm:ss';
timeedit1.Text := timetostr(now);
end;
如果有人有一个更简单的想法,或者你知道如何解决我的问题。
谢谢!
PS这是函数的定义: