首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 Java 中获取网络日期和时间

最近项目需求要获取消费信息和记录,其中消费时间是一个很重要的因素,因为要和后台服务器进行交互,所以不能使用本机时间,而要使用网络时间,以保证其相对可靠。

获取本地时间就很简单了,之前在『

时间差算法

』一文中也有用到,至于网络时间,一直都没有用过。

查了一下,发现Java给我们提供了相应的方法,能让我们简单地通过几行代码就能够获取到网络时间。

首先从Bing中获取资源对象,至于为什么选Bing,首先网上大多数教程都选用久久时间网(https://bjtime.cn)来连接的,但是有技术博客提到,其时间并不准确,可靠性较低,然后我改用中国科学院国家授时中心(http://www.ntsc.ac.cn)来进行连接,毕竟 Windows 7 时代我还使用过它来更新PC的本地时间呢。

但在测试中却出乎意料的发现,中科院国家授时中心的时间却比实际时间快了几分钟,并不知道原因,赶紧弃坑!

于是就转战一些互联网巨头的网站吧,至少服务器稳定可靠,首先想到的是Google,这明显就不现实嘛,这不是要等到用户连接超时吗!虽然最近Google也有回华的趋势了,毕竟人民日报都发话了。

既然国外的不行,那就国内大厂吧,BAT都行吧,首先试了一下百度,时间的确准了,但是回念一想,精神洁癖,弃!

正考虑该用什么网址呢,灵光一闪,我不是在用Windows吗,那就Bing好了,于是就把URL改成Bing了。

好,继续。

取得资源对象后,通过生成连接对象并建立连接,只需要建立连接就可以了,不需要Request与Response,所以比单独写接口效率要高。

接着再把它转为标准时间对象,并按照所需的格式进行转换,因为我的项目只需面向国内的用户,所以用把它设定为北京时间。

最后在把它转换成字符串的形式就可以了。

因为我是使用Java语言开发 Android App 的,所以只需要把上方的代码套进去就行了,至于Kotlin或其他语言,我相信方法也是大同小异的。

Like it or not

I am here

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190114G006MP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券