ここ読んでやっとわかった。longの時は2個レジスタを使うんだ。なるほど。半分だけだったから変な数字が出てたのか。連続した2個のレジスタを使うと。ふむふむ。賢くなった。
いや、引数は3個なのに4個指定してるのおかしいなぁとは思ってたんだ。なるほど。
ということで、比較的正しく表示されるようになったと思います。ロケールをアメリカにすると順番が変わります。この調子でframework周りも弄れば素敵な感じになるかな。
[patch]
@@ -997,21 +997,14 @@
.line 94
iget-object v3, p0, Lcom/sonyericsson/digitalclockwidget/SettingsFacade;->mTimeRightNow:Ljava/util/Calendar;
– invoke-virtual {v3}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
+ invoke-virtual {v3}, Ljava/util/Calendar;->getTimeInMillis()J
– move-result-object v2
+ move-result-wide v1
.line 95
– .local v2, now:Ljava/util/Date;
– invoke-direct {p0, p1}, Lcom/sonyericsson/digitalclockwidget/SettingsFacade;->getSystemDateFormat(Landroid/content/Context;)Ljava/lang/String;
+ const/16 v0, 0x16
– move-result-object v3
–
– invoke-static {v3, v2}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;
–
– move-result-object v3
–
– invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
+ invoke-static {p1, v1, v2, v0}, Landroid/text/format/DateUtils;->formatDateTime(Landroid/content/Context;JI)Ljava/lang/String;
move-result-object v3
[/patch]
formatDateTime()のサンプルの少なさに泣けたw
コメント
[…] 解決しました […]