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'相关推荐

  1. 格式化时间 将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库) ...

  2. JS 前端获取系统当前时间存入数据库datetime可识别格式(yyyy-mm-dd HH:mm:ss)

    SQL 获取当前时间 select getdate() JS获取当前时间 getDate() 获取日 1-31 getDay () 获取星期 0-6(0代表周日) getMonth () 获取月 0- ...

  3. 习题9-1时间换算:本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)...

    本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时). 输入格式: 输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n ...

  4. 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 ...

  5. 自定义jackson解析时间格式yyy-MM-dd HH:mm:ss

    原文:https://my.oschina.net/xpx/blog/1924695 一.问题排查 1.出现的场景 1)服务端通过springmvc写了一个对外的接口,返回一个json字符串,其中该j ...

  6. java中常用的时间格式yyyy-MM-dd'T'HH:mm:ss.SSSZ

    2019独角兽企业重金招聘Python工程师标准>>> 标准时间格式 Date and Time Pattern Result "yyyy.MM.dd G 'at' HH: ...

  7. 时间格式化hh:mm:ss和HH:mm:ss

    hh:mm:ss 按照12小时制的格式进行字符串格式化 如果时间处于00:00:00--12:59:59,则返回的字符串正常 如果时间处于13:00:00--23:59:59,则返回的字符串是实际时间 ...

  8. 本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。

    输入格式: 输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60). 输出格式: 输出在一行中给出hh:mm:ss格式的结果时间. 输入样例: 11:59:40 30 ...

  9. 时间格式化hh:mm:ss和HH:mm:ss区别

    hh:mm:ss 按照12小时制的格式进行字符串格式化 如果时间处于00:00:00--12:59:59,则返回的字符串正常 如果时间处于13:00:00--23:59:59,则返回的字符串是实际时间 ...

  10. java ssssss_Java 时间字符串(HH:mm:ss.SSS) 转换成毫秒(milliseconds)

    1.通过SimpleDateFormat package se.wederbrand.milliseconds; import java.text.SimpleDateFormat; import j ...

最新文章

  1. DevExpress的TreeList的常用属性设置以及常用事件
  2. Input类,Vector3实例
  3. 科大星云诗社动态20210406
  4. python数据结构 树_python 数据结构四 之 二叉树和树
  5. 可以声明一个抽象类类型变量_TypeScript系列(二)变量声明和数据类型
  6. 高度固定 宽度裁剪_ffmpeg 视频裁剪
  7. Spring.net 控制反转(IoC)容器_(收集)
  8. 冷峭的 渗透测试入门DVWA教程001:环境搭建
  9. 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
  10. 卷积神经网络以LeNet网络为例的手写体识别
  11. 我们通常所说的利率是指_我们通常所说的利率是指()。 A.市场利率B.名义利率C.实际利率D.固定利率...
  12. 择校秘籍|保研去 北大软微 还是 中科院计算所?
  13. 校园网使用家用无线路由器
  14. samba服务器的功能
  15. java 反射为何耗性能_Java反射的性能成本
  16. 大数据时代:9种从大数据中获取商业价值的方法
  17. Tomcat 到底干了啥
  18. python把文字矢量化_如何将点阵汉字矢量化 | indienova
  19. 获取dingding审批实例
  20. 如何在 React Component 之外获取 Redux Store

热门文章

  1. flask学习笔记代码篇-10
  2. Use Goldengate Initial Data Load
  3. jqwidgets API
  4. 计算机的桌面偏上怎么调整,电脑桌面软件太靠边怎么办
  5. 只鳞片爪聊红楼——《红楼梦》读后感笔记3200字
  6. 关于app申请软件著作权登记时软件名称命名的问题
  7. C-关键字之const
  8. wirehark数据分析与取证flag.pcap
  9. Win7任务管理器显示不全问题解决办法
  10. Seafile私有云盘搭建详解