我正在使用Location类和getTime()方法来获取Android中的当前时间。然后我把那个长号码发送到其他设备。该设备接收 Long 数字并应在消息框中显示数据,但我不知道如何将其转换为 DD:MM:YY 和一天中的时间(或实际上人类可读的任何内容)。我该怎么做?我不能使用当前的格式,它必须是普通用户可以阅读的东西。
谢谢!
假设你不想使用Joda Time(对于Android应用程序来说可能有点大),你可能应该使用DateFormat
,例如SimpleDateFormat
:
// See notes below
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = new Date(location.getTime());
String formatted = format.format(date);
不过,您应该考虑一些文化问题:
- 如果您认为默认设置可能不适合您,您可能希望显式设置区域设置
- 您可能希望使用
DateFormat.getDateTimeInstance()
而不是对格式进行硬编码 - 你应该考虑你感兴趣的时区;大概是用户的时区,这应该是你创建的任何
DateFormat
的默认值,但也许还有其他东西......
你这样做
long longD// as you receive in long format
Date d = new Date(longD);
SimpleDateFormat sdf = new SimpleDateFormat("dd:MM:yy");
String sDate = sdf.format(d);
从这里: http://developer.android.com/reference/android/location/Location.html#getTime%28%29 您可以看到方法getTime从1970年1月1日开始以毫秒为单位返回时间。
这可能有助于如何获取所需的日期格式:在Java中获取"unixtime"