Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'
NoHttp开源地址:https://github.com/yanzhenjie/NoHttp
NoHttp详细使用文档已发布,你想知道的全都有,请点我移步!
版权声明:转载请注明本文转自严振杰的博客: http://blog.yanzhenjie.com
前言
写这个博客是因为这段时间写NoHttp时遇到格式话Http响应头和请求头中和Data有关的字段时遇到的一些问题,最后总结了一下算法。
2个概念明确下:
1. 格林尼治时间(有的出版局叫格林威治Greenwhich)的格式:”EEE, dd MMM y HH:mm:ss ‘GMT’”
2. 毫秒格式:1464709616971
格林尼治(EEE, dd MMM y HH:mm:ss ‘GMT’)转化为毫秒
public static final String FORMAT_HTTP_DATA = "EEE, dd MMM y HH:mm:ss 'GMT'";public static final TimeZone GMT_TIME_ZONE = TimeZone.getTimeZone("GMT");/*** Parsing the TimeZone of time in milliseconds.** @param gmtTime GRM Time, Format such as: {@value #FORMAT_HTTP_DATA}.* @return The number of milliseconds from 1970.1.1.* @throws ParseException if an error occurs during parsing.*/
public static long parseGMTToMillis(String gmtTime) throws ParseException {SimpleDateFormat formatter = new SimpleDateFormat(FORMAT_HTTP_DATA, Locale.US);formatter.setTimeZone(GMT_TIME_ZONE);Date date = formatter.parse(gmtTime);return date.getTime();
}
毫秒转化为格林尼治(EEE, dd MMM y HH:mm:ss ‘GMT’)
public static final String FORMAT_HTTP_DATA = "EEE, dd MMM y HH:mm:ss 'GMT'";public static final TimeZone GMT_TIME_ZONE = TimeZone.getTimeZone("GMT");/*** Parsing the TimeZone of time from milliseconds.** @param milliseconds the number of milliseconds from 1970.1.1.* @return GRM Time, Format such as: {@value #FORMAT_HTTP_DATA}.*/
public static String formatMillisToGMT(long milliseconds) {Date date = new Date(milliseconds);SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_HTTP_DATA, Locale.US);simpleDateFormat.setTimeZone(GMT_TIME_ZONE);return simpleDateFormat.format(date);
}
合起来写成一个类HttpDate
public final class HttpDateTime {public static final String FORMAT_HTTP_DATA = "EEE, dd MMM y HH:mm:ss 'GMT'";public static final TimeZone GMT_TIME_ZONE = TimeZone.getTimeZone("GMT");/*** Parsing the TimeZone of time in milliseconds.** @param gmtTime GRM Time, Format such as: {@value #FORMAT_HTTP_DATA}.* @return The number of milliseconds from 1970.1.1.* @throws ParseException if an error occurs during parsing.*/public static long parseGMTToMillis(String gmtTime) throws ParseException {SimpleDateFormat formatter = new SimpleDateFormat(FORMAT_HTTP_DATA, Locale.US);formatter.setTimeZone(GMT_TIME_ZONE);Date date = formatter.parse(gmtTime);return date.getTime();}/*** Parsing the TimeZone of time from milliseconds.** @param milliseconds the number of milliseconds from 1970.1.1.* @return GRM Time, Format such as: {@value #FORMAT_HTTP_DATA}.*/public static String formatMillisToGMT(long milliseconds) {Date date = new Date(milliseconds);SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_HTTP_DATA, Locale.US);simpleDateFormat.setTimeZone(GMT_TIME_ZONE);return simpleDateFormat.format(date);}/*** Returned the local number of milliseconds after 100.** @return Long format time.*/public static long getMaxExpiryMillis() {return System.currentTimeMillis() + 1000L * 60L * 60L * 24L * 365L * 100L;}}
最后一个方法是得到一个100年的毫秒时间,有的同学算到的是错的,问题出在有的数字后面没有L,所以超出了int的极限,所以得到值比预想的要小。
欢迎大家关注Android开源网络框架NoHttp:https://github.com/yanzhenjie/NoHttp
在线直播视频和代码下载:http://pan.baidu.com/s/1miEOtwG
Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'相关推荐
- 格式化时间 将2021-09-05T09:08:03.000Z 转换成 YYYY-MM-DD HH:mm:ss 格式
格式化时间 将2021-09-05T09:08:03.000Z 转换成 YYYY-MM-DD HH:mm:ss 格式 1.引入第三方包 dayjs (一个轻量的处理时间和日期的javascript库) ...
- JS 前端获取系统当前时间存入数据库datetime可识别格式(yyyy-mm-dd HH:mm:ss)
SQL 获取当前时间 select getdate() JS获取当前时间 getDate() 获取日 1-31 getDay () 获取星期 0-6(0代表周日) getMonth () 获取月 0- ...
- 习题9-1时间换算:本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)...
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时). 输入格式: 输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n ...
- vue3时间格式转换为yyyy/mm/dd,yyyy-MM-dd,yyyy-MM-dd hh:mm:ss,hh:mm,yyyy-MM-ddThh:mm:ss+08:00
时间格式转换为yyyy/mm/dd export const dateFormat1 = (time = new Date().getTime()) => { //YYYY/MM/DDconst ...
- 自定义jackson解析时间格式yyy-MM-dd HH:mm:ss
原文:https://my.oschina.net/xpx/blog/1924695 一.问题排查 1.出现的场景 1)服务端通过springmvc写了一个对外的接口,返回一个json字符串,其中该j ...
- java中常用的时间格式yyyy-MM-dd'T'HH:mm:ss.SSSZ
2019独角兽企业重金招聘Python工程师标准>>> 标准时间格式 Date and Time Pattern Result "yyyy.MM.dd G 'at' HH: ...
- 时间格式化hh:mm:ss和HH:mm:ss
hh:mm:ss 按照12小时制的格式进行字符串格式化 如果时间处于00:00:00--12:59:59,则返回的字符串正常 如果时间处于13:00:00--23:59:59,则返回的字符串是实际时间 ...
- 本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。
输入格式: 输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60). 输出格式: 输出在一行中给出hh:mm:ss格式的结果时间. 输入样例: 11:59:40 30 ...
- 时间格式化hh:mm:ss和HH:mm:ss区别
hh:mm:ss 按照12小时制的格式进行字符串格式化 如果时间处于00:00:00--12:59:59,则返回的字符串正常 如果时间处于13:00:00--23:59:59,则返回的字符串是实际时间 ...
- java ssssss_Java 时间字符串(HH:mm:ss.SSS) 转换成毫秒(milliseconds)
1.通过SimpleDateFormat package se.wederbrand.milliseconds; import java.text.SimpleDateFormat; import j ...
最新文章
- DevExpress的TreeList的常用属性设置以及常用事件
- Input类,Vector3实例
- 科大星云诗社动态20210406
- python数据结构 树_python 数据结构四 之 二叉树和树
- 可以声明一个抽象类类型变量_TypeScript系列(二)变量声明和数据类型
- 高度固定 宽度裁剪_ffmpeg 视频裁剪
- Spring.net 控制反转(IoC)容器_(收集)
- 冷峭的 渗透测试入门DVWA教程001:环境搭建
- 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
- 卷积神经网络以LeNet网络为例的手写体识别
- 我们通常所说的利率是指_我们通常所说的利率是指()。 A.市场利率B.名义利率C.实际利率D.固定利率...
- 择校秘籍|保研去 北大软微 还是 中科院计算所?
- 校园网使用家用无线路由器
- samba服务器的功能
- java 反射为何耗性能_Java反射的性能成本
- 大数据时代:9种从大数据中获取商业价值的方法
- Tomcat 到底干了啥
- python把文字矢量化_如何将点阵汉字矢量化 | indienova
- 获取dingding审批实例
- 如何在 React Component 之外获取 Redux Store