使用GPS(LocationManager)如何获取当前时间?
我正在开发一个GPS应用程序。 这将每隔一小时将位置数据发送到服务器。
在这里我使用以下代码:
location.getLatitude(); location.getLongitude(); location.getTime();
使用此代码我正确地获得纬度和经度以及时间,但我得到的是13位数而不是时间。 我做了一些研究,我发现这是当前时间的秒。
所以现在我需要将这个13位数转换成特定的格式。
Location#getTime()
返回“此修复的UTC时间,自1970年1月1日以来的毫秒数。”
这与java.util.Date#getTime()
完全相同。 我不清楚你想用这个时间数据做什么,但是如果你想将Location
的时间转换为java.util.Date
,你可以这样做:
long time = location.getTime(); Date date = new Date(time);
现在,它更容易使用。 如果您想创建该日期的特定字符串输出格式,请使用SimpleDateFormat
:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String text = sdf.format(date); System.out.println(text); // prints something like 2011-01-08 13:35:48
也就是说,如果您想要做的就是获取当前时间(这听起来像是您尝试做的事情),您根本不需要Location
:
Date now = new Date();
而已!
这有帮助吗? 如果没有,你能澄清一下你想做什么吗?
Date date = new Date(location.getTime()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String myDate= sdf.format(date); System.out.println(myDate)
String timestamp = parseDate(location.getTime().toDate()); public String parseDate(Date date){ String format = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US); return sdf.format(date).toString(); }