首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 時間戳與字串互轉工具類 TimeUtil:Long ↔ 格式化日期

     編輯:Java 綜合教學

TimeUtil 完整原始碼

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

public class TimeUtil {

    /**
     * 長整型時間戳轉格式化字串
     * @param time 毫秒時間戳字串,如 "1467342217645"
     * @param pattern 日期格式,如 "yyyy-MM-dd HH:mm:ss.SSS"
     * @return 格式化日期字串
     */
    public static String parseLongTime2String(String time, String pattern) {
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(Long.valueOf(time));
        return new SimpleDateFormat(pattern).format(cal.getTime());
    }

    /**
     * 格式化日期字串轉長整型時間戳
     * @param time 日期字串,如 "2016-07-01 10:52:41.792"
     * @param pattern 日期格式
     * @return 毫秒時間戳
     */
    public static long parseString2LongTime(String time, String pattern) {
        Date date = null;
        try {
            date = new SimpleDateFormat(pattern).parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date.getTime();
    }

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        System.out.println("當前時間戳:" + cal.getTimeInMillis());
        System.out.println("時間戳轉字串:" + parseLongTime2String(String.valueOf(cal.getTimeInMillis()), "yyyy-MM-dd HH:mm:ss.SSS"));
        System.out.println("字串轉時間戳:" + parseString2LongTime("2016-07-01 10:52:41.792", "yyyy-MM-dd HH:mm:ss.SSS"));
    }
}

常用日期格式模式對照

模式字母含義範例
yyyy年2024
MM月07
dd日01
HH時 (24小時制)14
mm分30
ss秒59
SSS毫秒123

使用建議

  • SimpleDateFormat 非線程安全,多線程環境請使用 ThreadLocal 或 JDK 8+ DateTimeFormatter。
  • 生產環境建議統一使用 UTC 時間戳儲存,顯示時再按時區格式化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved