【问题标题】:The best practice for get date time from Android phone从 Android 手机获取日期时间的最佳实践
【发布时间】:2018-03-04 19:52:21
【问题描述】:

我目前正在开发一个 android 应用程序,在我的某些功能中需要从手机获取日期时间,但假设用户可以随意更改他们的手机日期时间,在这种情况下,我的应用程序将显示错误的结果。我使用时间戳作为我的日期时间的数据类型顺便说一句,所以如何确保我从手机中获得最准确的日期时间,而无需担心用户修改手机日期时间。

Calendar dateTime=Calendar.getInstance(); long milliseconds=dateTime.getTimeInMillis();

如您所见,上面的代码是从手机本身获取日期时间,这意味着由于用户修改了手机中的日期时间,它可能不准确。任何人都请向我提出关于如何做到这一点的解决方案或想法是正确的方法。谢谢和 对不起我的英语不好

日历:它基于设备时间设置/时区。引用文档:“日历的 getInstance 方法返回一个日历,其区域设置基于系统设置,并且其时间字段已使用当前日期和时间初始化”

但我的问题是如果用户更改时间设置怎么办??

【问题讨论】:

  • 您需要从外部网络服务查询时间,但如果用户将手机设置为错误的日期和时间,他们可能需要接受依赖手机时间的应用无法正常工作。
  • 您有任何与此相关的链接或文档可以分享给我吗?我真的不知道如何为应用程序实现 Web 服务,以便在不受用户干扰的情况下获得准确的时间
  • 您可以从互联网上正确获取日期和时间。 Example
  • @DimaKozhevin 听起来是正确的方法,谢谢顺便说一句,我会试试这个

标签: android datetime timestamp


【解决方案1】:
Date d = new Date();
DateFormat date = new SimpleDateFormat("dd MMM yy - HH:mm");
Log.i("Date",date.format(d));

编辑:

向某处发送请求并从中读取日期 要求:

HEAD / HTTP/1.1
Host: google.com

回复:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Wed, 09 Mar 2011 16:04:48 GMT
Expires: Fri, 08 Apr 2011 16:04:48 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block

再次编辑: 使用此代码进行请求并获取日期

URL obj = new URL("http://mkyong.com");
URLConnection conn = obj.openConnection();
String date = conn.getHeaderField("date");

【讨论】:

  • 这个日期是从手机本身获取的吧?但与我有关的是用户可能会更改日期时间然后会导致日期时间不准确
  • 这对我来说看起来很复杂,我需要一些时间来消化这个
  • 好的,这个我比较熟悉,我试试这个,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 2016-02-08
相关资源
最近更新 更多