新浪微博时间的返回格式 Thu Aug 13 18:03:49 +0800 2015,Thu和+0800我也不晓得是什么,就没管这两个。我将微博的发表时间先统一格式化为20150813180349的格式,然后获取系统时间也格式化为这个形式,得到两个时间的毫秒差值,根据差值来确定时间的显示格式。虽然下面的代码是针对新浪微博的进行编写的,不过我觉得以后可能还会在其他地方用得着,索性就记录下来。上代码。

package com.lql.tools;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

/**

*

* 时间格式为:Thu Aug 13 18:03:49 +0800 2015 时间转化的工具类

*

* @author Administrator

*

*/

public class TimeTools {

/**

* @param timeString

* @return

*/

public static String getCreatedTime(String timeString) {

String result = "";

String tmp = formatDate(timeString);//将时间字符串 转为格式为yyyyMMddHHmmss

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

try {

long millSeconds = sdf.parse(tmp).getTime();//发表时间的毫秒数,是距离1970年1月1日的毫秒数

String currentTime= sdf.format(new Date());//系统当前时间

long nowMillSeconds = sdf.parse(currentTime).getTime();//系统当前时间距离1970年1月1日的毫秒数

long temp = nowMillSeconds - millSeconds;//两者之间的时间差

result = getPublicTime(temp,millSeconds);//根据时间差的多少来判断时间的最终显示格式

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

/**

*

* 根据时间差来判断时间显示的格式

*

* 小于一分钟:显示多少秒之前发表

* 大于等于一分钟 : 显示多少分钟之前发表

* 大于一小时 统一显示显示格式为 yyyy-MM-dd

* @param temp

* @param createMillSeconds

* @return

*/

public static String getPublicTime(long temp,long createMillSeconds) {

// TODO Auto-generated method stub

String result = "";

long millSecondsOfDay = 86400000;//一天的毫秒数

long millSecondsOfHour = 3600000;//一个小时的毫秒数

long millSecondOfMinute = 60000;//一分钟的毫秒数

if(temp<0){//如果差是负数就直接显示微博发表日期(负数说明系统时间存在问题,就直接显示发表日期)

result = parseMillSecondsToDate(createMillSeconds,2);

}else if(temp < millSecondOfMinute && temp >= 0){//小于一分钟就显示 多少秒前

result = Math.ceil(temp / 1000) + "秒前";//上取整

}else if(temp >= millSecondOfMinute && temp < millSecondsOfHour){

result = Math.ceil(temp / 1000 / 1000) +"分钟前";//小于一个小时大于一分钟就显示 多少分钟前

}else if(temp >= millSecondsOfHour && temp < millSecondsOfDay){

result = "今天 "+parseMillSecondsToDate(createMillSeconds,1);//大于一小时就显示今天几点的几点

}else{

result = parseMillSecondsToDate(createMillSeconds,2);//大于一天就是发表日期

}

return result;

}

/**

*

* 毫秒转化为时间

* @param createMillSeconds

* @return

*/

public static String parseMillSecondsToDate(long createMillSeconds,int flag) {

// TODO Auto-generated method stub

String result = "";

SimpleDateFormat sdf;

Date date = new Date(createMillSeconds); //将毫秒转为时间转化为

if(flag == 2){

sdf = new SimpleDateFormat("yyyy-MM-dd");

result = sdf.format(date);

}else if(flag == 1){

sdf = new SimpleDateFormat("HH:mm");

result = sdf.format(date);

}else{

sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

result = sdf.format(date);

}

return result;

}

/**

*

* 将英文格式的月转化为数字格式月

*

* @param englishFormatMonth

* 英文月简写 Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov,

* Dec

* @return

*/

public static String getNumFormatMonth(String englishFormatMonth) {

String result = "";

String[] month = new String[] { "", "Jan", "Feb", "Mar", "Apr", "May",

"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };

for (int i = 1; i < 13; i++) {

if (englishFormatMonth.equals(month[i])) {

if (i <= 9) {//月小于九的时候 拼接上一个0

result = "0" + String.valueOf(i);

}else{

result = String.valueOf(i);

}

break;

}

}

return result;

}

/**

* 将18:12:23 转化为181223的格式

*

* @param timeStr

* @return

*/

public static String formatTime(String timeStr) {

StringBuffer buffer = new StringBuffer(timeStr);

buffer.deleteCharAt(2);

buffer.deleteCharAt(4);

return buffer.toString();

}

/**

* 将Thu Aug 13 18:03:49 +0800 2015的格式 转为201408

*

* @param tmp

* @return

*/

public static String formatDate(String tmp) {

StringBuffer result = new StringBuffer("");

String[] splitedStr = tmp.split(" ");

// 月

String month = getNumFormatMonth(splitedStr[1]);

// 日

String day = splitedStr[2];

// 时间

String time = formatTime(splitedStr[3]);

// 年

String year = splitedStr[5];

result.append(year);

result.append(month);

result.append(day);

result.append(time);

return result.toString();

}

}上面的

getCreatedTime();是时间转化的方法入口,只要调用这一个方法就可以了。

java 微博发布时间_java 对新浪微博微博的发表时间解析相关推荐

  1. html中微博发布怎么做,js实现微博发布小功能

    微博发布功能,可发布可删除.样式没设置忽略,主要知识点及注意点: 1.动态添加节点标签. 2.内容为空时不能发布. 3.新发布的内容要在上面. 4.内容删除要同时删除掉节点. 5.为保持样式输入框要设 ...

  2. android 微博发布,手机上怎么用微博?手机如何发广播?

    1 如何安装Android微博 Android微博可以通过以下两种方式进行安装:在Android market中下载腾讯微博Android版进行安装 在腾讯微博官网下载apk文件进行安装 2 腾讯微博 ...

  3. java获取数据库当前时间_java中获取系统的当前时间

    转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输出: import java ...

  4. java 接口开发时间_Java开发中的日期和时间使用

    概念# 时区# 不同时区在同一时刻,它们的本地时间是不同的,全球一共有24个时区,我们把伦敦所在的时区称为标准时区,其他时区按照东西偏移的小时来区分,北京所在的时区是东八区(GMT+08:00).时区 ...

  5. java游戏时间条_java – 如何获得游戏的实时时间

    我正在使用 Java,我正在制作游戏.在这个游戏中,实时是非常重要的一部分. 出于这个原因,我试图使用Ntp获得实时. 我在网上找到的是这段代码. import java.net.InetAddres ...

  6. java取开始时间和结束时间_java获取指定开始时间与结束时间之间的所有日期

    本文实例为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java. ...

  7. java 安全发布对象_Java安全的发布对象

    安全发布对象 在静态初始化函数中初始化一个对象引用 将对象的引用保存到volatile类型域或者AtomicReference对象中 将对象的引用保存到某个正确构造对象的final类型域中 将对象的引 ...

  8. java session时间_Java基础:里设置session过期时间

    由于session值之前没有设置,以至于刚登录的网站,不到一分钟就超时了,总结了一下,原来是session过期的原因,以下是设置session时间的3个方法: 1. 在tomcat-->conf ...

  9. java模块化发布选型_Java模块化开发

    模块化编程 将程序按照功能分为不同的模块 不同模块的程序写在不同的包中, 共同的代码抽取出来形成Util类,为方便调用一般为static的 项目初期,按照业务功能划分模块,即自上而下的方法.开发的过程 ...

  10. java怎么发布版本号_java 实现比较版本号功能

    涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法: 这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使 ...

最新文章

  1. tee 和 ree分别是什么意思?
  2. mybatis高级查询
  3. UNIX再学习 -- 函数abort
  4. sqlserver order by自定义数字排序 其他_苹果cms怎么自定义伪静态规则?
  5. 只要你懂为啥有人爱砍传奇,就能明白《逃离塔科夫》为何会成功
  6. centos7 文件名中文乱码_解决Centos7下中文显示乱码
  7. FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
  8. Android高级开发专题晋升班
  9. 81. 搜索旋转排序数组 II(014)二分查找+思路+详解+二种做法
  10. matlab imfill孔洞填充
  11. html中给文章怎么设置行高,css如何设置行距?
  12. 从C# 到 Java 点滴
  13. 腾讯看点多维实时分析系统架构大曝光!
  14. 举办了一个如何对外协作的讲座,4人到场
  15. 自动安装L2tp的脚本
  16. UEFI安装win10+manjaro双系统
  17. VsCode镜像下载(国内镜像源,高速秒下)
  18. springcloud入门——zookeeper
  19. Raid5磁盘阵列数据恢复成功案例/服务器数据恢复方案
  20. 1985:【19CSPJ普及组】加工零件

热门文章

  1. 渗透测试信息收集笔记(信息搜集、后台查找)
  2. 蓝屏代码2345prot.sys
  3. CSS3:颜色渐变和重复性渐变
  4. 基于FL2440 的V4L2采集 + H264编码 + LIVE555发布的实时视频监控系统
  5. 企业内部知识共享平台的好处-以Confluence为例
  6. 【论文解读--Xdog】(宇树科技鼻祖)新型电驱式四足机器人研制与测试
  7. 量化交易11-backtrader回测两只乌鸦、三只乌鸦K线形态图
  8. 学报格式和论文格式一样吗_工大学报论文格式要求
  9. 爬虫项目:大麦网分析
  10. 计算机应用软件弹窗消除,去除电脑弹窗广告的4种方法