关闭

Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'

标签: androidNoHttpHttpHeaderDate格林尼治时间
3288人阅读 评论(0) 收藏 举报
分类:

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
  

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

获得当前时间的格林威治时间毫秒数

搜的,备忘select to_char(sysdate,yyyy-mm-dd hh24:mi:ss) current_date, (sysdate- to_date(1970-01-01,yyyy-m...
  • super_marioli
  • super_marioli
  • 2010-04-21 13:27
  • 2443

java将 Date原始格式EEE MMM dd HH:mm:ss Z yyyy"转成指定格式

java将 Date原始格式"EEE MMM dd HH:mm:ss Z yyyy"转成指定格式 //将 Date原始格式"EEE MMM dd HH:mm:ss Z yyyy"转成指定格式 ...
  • zhihaoma
  • zhihaoma
  • 2016-01-14 16:24
  • 5606

Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'

Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss ‘GMT’欢写这个博客是因为这段时间写[NoHttp][1]时遇到格式话Http响应头和请求头中和Data有关的字段时...
  • yanzhenjie1003
  • yanzhenjie1003
  • 2016-05-31 23:52
  • 3288

Unix timestamp时间 与 普通时间 转换方法

在转换工具http://tools.sharejs.com/unixtime.html 下面以java 转换方法为例 说明 java时间转换成unix timestamp import ja...
  • gdp12315
  • gdp12315
  • 2016-03-03 17:19
  • 4337

Jackson 框架,轻易转换JSON (包括时间转换)

关于jackson中时间字符串的转换中的错误. [java]view plaincopyprint? "yyyy-MM-dd'T'HH:mm:ss.SSSZ" "yyyy-M...
  • z69183787
  • z69183787
  • 2015-01-06 21:53
  • 7751

如何简单正确地向前台返回"YYYY-MM-DD hh:mm:ss"格式的时间值

摘要: 本文通过作者亲身经历来解答如何简单正确地向前台返回”YYYY-MM-DD hh:mm:ss”格式的时间进行回显,而不是返回一个long整数(当前时间相对于GMT时间1970年1月1号0时0分0...
  • z45689
  • z45689
  • 2017-01-15 20:56
  • 1048

spring mvc 在jsp页面如何使时间以格式yyyy-MM-dd HH:mm:ss显示,24小时制

首先,javaBean为: import java.util.Date; public class OutcomeVo { private int oid; private int uid...
  • zhangbest2009
  • zhangbest2009
  • 2012-08-03 15:03
  • 3667

javaScript JQuery时间戳转 YYYY-MM-DD HH:mm:SS

使用Jquery进行AJAX进行数据返回的过程中,可能返回的Date数据被转换成时间戳格式,可通过以下方法进行转换。
  • yueaini10000
  • yueaini10000
  • 2016-06-03 11:28
  • 398

JQuery json 时间格式由Thu Nov 9 20:30:37 UTC+0800 2006 转换成yyyy-MM-dd hh:mm:ss

function ConvertTime() { var date = "/Date(1300955103000+0800)/"; ...
  • huangguiming
  • huangguiming
  • 2011-03-29 15:31
  • 4729

使用js将long类型转化为"yyyy-MM-dd hh:mm:ss"日期格式&jQuery自带日历控件的汉化教程

使用js将long类型转化为"yyyy-MM-dd hh:mm:ss"日期格式&jQuery自带日历控件的汉化教程
  • leixingbang1989
  • leixingbang1989
  • 2015-12-28 10:17
  • 3383
    个人资料
    • 访问:1606338次
    • 积分:6522
    • 等级:
    • 排名:第4285名
    • 原创:52篇
    • 转载:0篇
    • 译文:1篇
    • 评论:1274条
    我的微信公众号
    欢迎关注我的公众号,不定期为您推送优选博文,生活趣事!
    关注我的微信公众号

    关注我的微博
    友情链接


    我的Github

    QQ交流群 547839514

    博客专栏