NDK な C から呼び出す time(NULL) の戻り

9h 前のタイムスタンプな数値が戻る模様。しかもミリ秒ではないらしい。
Android 側で取得した後に以下な処置が必要、って (絶句

long time = hoge;
time *= 1000;
String TIME_FORMAT = "yyyy/MM/dd HH:mm:ss";
time += TimeZone.getDefault().getRawOffset();
SimpleDateFormat sdf = new SimpleDateFormat(TIME_FORMAT, Locale.JAPAN);
sdf.setTimeZone(TimeZone.getDefault());
String txt = sdf.format(time);

これってぼくが知らなかっただけで既知の不具合、つうか仕様なのでしょうか。