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

原创 2016年05月31日 23:52:07

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://blog.yanzhenjie.com 举报

相关文章推荐

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

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

java格林尼治时间等转成常规日期类型字符串

首先  Mon Dec 09 22:06:24 格林尼治标准时间+0800 2013   字段一个格林尼治标准时间时间,一般情况下字段中不会含有中文,对于这种格式有两种解决方法 1剔除中文字符串...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

【GregorianCalendar】格林尼治时间GregorianCalendar[]解密

1.问题:Calendar中有一个特别烦人的东西,就是格林尼治日历时间(GreGorianCalendar[ ]),ta到底是什么鬼?2.源代码:startCal:"java.util.Gregori...

js中的时间与毫秒数互相转换,倒计时

1、日期格式转换成毫秒数 var oldTime = (new Date("2017-03-22 11:11:11")).getTime(); //得到毫秒数         也可以支持  "20...

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

使用Jquery进行AJAX进行数据返回的过程中,可能返回的Date数据被转换成时间戳格式,可通过以下方法进行转换。

时间格式:yyyy-MM-dd HH:mm:ss,YYYY-MM-dd hh:mm:ss等,详细解释

看到示例代码展示的日期格式,不符合本地化习惯,查看帮助文档,修改成常用的年月日格式,记录供以后查找; NSDate *now = [NSDate date]; NSDateFormatter ...

Java中日期时间格式与毫秒数的相互转换

Java中日期时间格式与毫秒数的相互转换

Oracle 时间相减得出毫秒、秒、分、时、天,,【转】

Oracle 时间相减得出毫秒、秒、分、时、天,,【转】 http://blog.csdn.net/redarmy_chen/article/details/7351410   oracle...

C++ 毫秒时间

C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t clock(void) ; 这个函数返回从“开启...

时间(格林尼治时间/协调世界时/世界时间)

协调世界时Universal Time Coordinated(UTC) 世界时间 universal time (UT) 格林尼治国际标准时间GMT(1884年始)
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)