【问题标题】:Android Location time into date [closed]Android定位时间到日期[关闭]
【发布时间】:2012-10-05 13:41:14
【问题描述】:

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

谢谢!

【问题讨论】:

  • 阅读文档。认真的,拜托。
  • 感谢大家的快速解答,这个网站帮了我很多!我希望有一天我能帮助别人,当我学到足够的东西时:D

标签: java android date time


【解决方案1】:

假设您不想使用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 的默认值,但也可能是其他的...

【讨论】:

    【解决方案2】:

    你这样做

    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);
    

    【讨论】:

    • 可以使用这个时间。 SimpleDateFormat sf = new SimpleDateFormat("mm-dd-yyyy'T'HH:mm:ss");
    • @PhilipRego:是的,您可以通过指定时间格式将其用于时间。 SimpleDateFormat sf = new SimpleDateFormat("HH:mm:ss");
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 2012-12-29
      相关资源
      最近更新 更多