2

我正在使用 Location 类和 getTime() 方法来获取 Android 中的当前时间。然后我将该长号码发送到其他设备。该设备接收长数字并应在消息框中显示数据,但我不知道如何将其转换为 DD:MM:YY 和一天中的时间(或者实际上是人类可读的任何内容)。我该怎么做呢?我不能使用当前格式,它必须是普通用户可以阅读的内容。

谢谢!

4

3 回答 3

6

假设您不想使用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您创建的任何时区的默认值,但也许还有其他东西......
于 2012-10-05T13:47:17.273 回答
4

你这样做

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);
于 2012-10-05T13:48:03.310 回答
0

从这里: http: //developer.android.com/reference/android/location/Location.html#getTime%28%29您可以看到 getTime 方法从 1970 年 1 月 1 日开始以毫秒为单位返回时间。

这可能有助于如何获得所需的日期格式:Getting "unixtime" in Java

于 2012-10-05T13:48:53.453 回答