新浪微博created_at字段转换成java算法

本文提供了一段Java代码,用于解析新浪微博API返回的时间戳,并将其转换为更易读的时间描述格式。该方法能够根据不同时间跨度输出相对时间表达,如刚刚、几小时之前等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新浪微博api,"created_at": "Fri Sep 08 14:29:59 +0800 2017"  -> 转换成java 代码

package time;

import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeParse {
	
	private static int ONE_HOUR = 3600000;  //一小时的毫秒值
	
	public static void main(String[] args) {
		String string = "Fri Sep 11 17:19:59 +0800 2016";
		System.out.println(getMicroBlogShowTime(string));
	}
	
	/**
	 * 传入微博created_at字段返回的时间格式,输出自定义时间描述
	 * 完整时间格式为: "yyyy-MM-dd HH:mm:ss"
	 * @param microBlogTime
	 * @return
	 */
	public static String getMicroBlogShowTime(String microBlogTime) {
        try {
            Date jobTime = new Date(microBlogTime);
            Date noeTIme = new Date();
            if (jobTime.getYear() != noeTIme.getYear()) {
                return transferLongToDate("yyyy-MM-dd", jobTime.getTime());
            } else {
                if (jobTime.getMonth() != noeTIme.getMonth()) {
                    return transferLongToDate("MM-dd", jobTime.getTime());
                } else {
                    if (jobTime.getDate() == noeTIme.getDate()) {
                        if ((noeTIme.getTime() - jobTime.getTime()) / ONE_HOUR > 0) {
                            return (noeTIme.getTime() - jobTime.getTime()) / ONE_HOUR + "小时之前";
                        } else {
                            if ((noeTIme.getTime() - jobTime.getTime()) > 0 && ONE_HOUR - (noeTIme.getTime() - jobTime.getTime()) > (ONE_HOUR/2)) {
                                return "刚刚";
                            } else if ((noeTIme.getTime() - jobTime.getTime()) > 0 && ONE_HOUR - (noeTIme.getTime() - jobTime.getTime()) > (ONE_HOUR/2)){
                                return "半小时之前";
                            } else {
                            	return "穿越了";
                            }
                        }
                    } else if (jobTime.getDate() + 1 == noeTIme.getDate()) {
                        return transferLongToDate("MM-dd HH:mm", jobTime.getTime());
                    } else {
                        return transferLongToDate("MM-dd", jobTime.getTime());
                    }
                }
            }
        } catch (Exception e) {
            return "";
        }
    }


    /**
     * 把毫秒转化成日期
     */
    public static String transferLongToDate(String dateFormat, long l) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        Date date = new Date(l);
        return sdf.format(date);
    }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值