时间字符串和时间戳转换

时间字符串和时间戳转换

介绍

主要利用Java中的SimpleDateFormat和Date进行时间字符串和时间戳之间的转换,以及时间格式代表的含义。

时间格式(部分)

格式含义示例
yyear2018
Mmonth in year07
wweek in year27
Wweek in month6
Dday in year189
dday in month17
HHour in day (0-23)23
hHour in am/pm (1-12)3
mMinute in hour30
sSecond in minute30

转换代码

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

/**
 * Description:  时间处理函数(Java8)
 * <p>
 * Create:       2018/6/16 15:29
 *
 * @author Yang Meng(eyangmeng@163.com)
 */
public class TimeUtils {

    /**
     * 时间字符串格式转换为时间戳
     *
     * @param timeStr 时间字符串格式, eg. 2018-06-17 00:00:00
     * @return 时间戳
     * @throws Exception 时间格式解析错误
     */
    public static long time2timestamp(String timeStr) throws Exception {
        return time2timestamp(timeStr, DEFAULT_FORMAT);
    }

    /**
     * 时间字符串格式转换为时间戳
     *
     * @param timeStr 时间字符串格式, eg. 2018-06-17 00:00:00
     * @param timeFormat  时间格式
     * @return 时间戳
     * @throws Exception 时间格式解析错误
     */
    public static long time2timestamp(String timeStr, String timeFormat) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat(timeFormat);
        return format.parse(timeStr).getTime();
    }

    /**
     * 时间戳转换为时间字符串
     *
     * @param timestamp 时间戳, eg. 1513440360000L
     * @return 时间字符串格式
     */
    public static String timestamp2time(long timestamp) {
        SimpleDateFormat format = new SimpleDateFormat(DEFAULT_FORMAT);
        return format.format(new Date(timestamp));
    }

    /**
     * 时间戳转换为时间字符串
     *
     * @param timestamp 时间戳, eg. 1513440360000L
     * @param timeFormat 时间格式
     * @return 时间字符串格式
     */
    public static String timestamp2time(long timestamp, String timeFormat) {
        SimpleDateFormat format = new SimpleDateFormat(timeFormat);
        return format.format(new Date(timestamp));
    }

    /** 默认时间格式: 2018-06-17 16:28:00 */
    private final static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
}

参考

  1. Java类: java.text.SimpleDateFormat,java.util.Date
  2. Java docs: Class SimpleDateFormat
要将时间字符串转换时间戳,有多种方法可以实现。引用提供了JavaScript的示例代码,可以根据时间字符串的长度使用不同的方式来获取时间戳。如果时间字符串的长度为10,表示时间戳是以秒为单位的,可以将时间字符串乘以1000转换为以毫秒为单位的时间戳。如果时间字符串的长度为13或19,表示时间戳已经是以毫秒为单位的,可以直接使用时间字符串作为时间戳。然后,可以使用JavaScript的Date对象的方法来获取年、月、日、小时、分钟秒。如果月、日、小时、分钟、秒的值小于10,则在前面补零。最后,将获取到的年、月、日、小时、分钟秒拼接成字符串返回即可。 引用是Java的示例代码,可以使用DateTimeUtils类的toLongDateStr方法将时间字符串转换时间戳。这个方法接受一个时间字符串作为参数,并返回一个时间戳字符串。 引用提供了一个封装方法conversionTime,可以将时间字符串转换时间戳。这个方法首先判断传入的时间字符串是否为空,如果为空则返回空字符串。然后,判断传入的时间字符串的格式,如果是以'-'分隔的日期格式,则将'-'替换为'/',以兼容360IE浏览器。接着,将时间字符串转换Date对象,并使用Date.parse方法将Date对象转换时间戳。最后,返回时间戳。 综上所述,要将时间字符串转换时间戳,可以根据自己所用的编程语言选择相应的方法实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值