2

这就是我所拥有的......如果我将它转换为毫秒,我必须将它存储很长时间。我使用 Android API 时间类(http://developer.android.com/reference/android/text/format/Time.html

Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
long todayMillis = today.toMillis(false);

我想在类似这样的可读版本之后将其格式化(在获得毫秒后,我将它保存到数据库中以便之后检索它):

todayMillis.format("%k:%M %d.%m.%y");

但我不能那么容易地做到这一点,因为我需要转换回时间.. 怎么做?

4

3 回答 3

4

创建一个新的时间对象,然后调用Time.set(long milliseconds)

Time time = new Time(Time.getCurrentTimeZone());
time.set(todayMillis);

我认为甚至不需要原始时区,因为毫秒是UTC,但是我猜该Time对象以某种方式在内部使用传递的时区。

于 2013-08-13T23:37:11.540 回答
1

您已经拥有today类型的对象,Time因此无需将毫秒转换回时间。但是,如果必须,android.text.format.Time包含一个set方法,该方法millisecondslong.

Time newToday = new Time();
newToday.set(todayMillis);
newToday.format("%k:%M %d.%m.%y");

文档

于 2013-08-13T23:33:11.987 回答
0

尝试这个:

Calendar calendar = Calendar.getInstance(); // Creates a new Calendar with the current Time
calendar.setTimeInMillis(todaysMillis);  // you can also put your millis in. Same effect.
String readableOutput = calendar.get(Calendar.HOUR_OF_DAY) +
            ":" + calendar.get(Calendar.MINUTE) +
            " " + calendar.get(Calendar.DAY_OF_MONTH) +
            "." + (1+calendar.get(Calendar.MONTH)) +
            "." + calendar.get(Calendar.YEAR);

更多字段和方法: http ://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

于 2013-08-13T23:53:59.510 回答