1. 程式人生 > >Java8之後常用的時間日期之間的轉換工具類

Java8之後常用的時間日期之間的轉換工具類

package com.ilike.time;


import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;


/**
 * 實際開發中比較常用時間日期的各種轉換
 * @author 桑偉東
 * 
 */
public class DateTimeUtil {


/**
* 預設的時間日期樣式
*/
private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
/**
* 系統預設的時區
*/
// private static final ZoneId ZONE_ID= ZoneId.systemDefault();


/**
* 中國時區
*/
private static final ZoneId ZONE_ID = ZoneId.of("Asia/Shanghai");


public static void main(String[] args) {
String dateTime = formatEpochSecond("yyyy-MM-dd HH:mm:ss", 1525767228);
System.out.println(dateTime);
String parseStrToNewStr = parseStrToNewStr("yyyy-MM-dd HH:mm:ss", "2018-05-08 16:13:48", "MM-dd");
System.out.println(parseStrToNewStr);
long parseDateTime = parseDateTime("yyyy-MM-dd HH:mm:ss", "2018-05-08 16:13:48");
System.out.println(parseDateTime);
long parseDateTime2 = DefaultParseDateTime("2018-05-08 16:13:48");
System.out.println(parseDateTime2);
String yesterdayStr = yesterdayStr(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(yesterdayStr);
System.out.println(ZoneId.getAvailableZoneIds());
}


/**
* 按照預設的模板將時間戳轉換為時間日期的字串形式

* @param epochSecond
*            時間戳 1525767228
* @return 返回時間日期的字串形式 2018-05-08 16:13:48
*/
public static String DefaultFormatEpochSecond(long epochSecond) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(epochSecond),
ZoneId.systemDefault());
return localDateTime.format(DateTimeFormatter.ofPattern(DEFAULT_PATTERN));
}


/**
* 按照給定的時間日期模版,將時間戳轉換成字串形式

* @param pattern
*            模版,例如"yyyy-MM-dd HH:mm:ss"
* @param epochSecond
*            時間戳 1525767228
* @return 轉換後的字串 2018-05-08 16:13:48
*/


public static String formatEpochSecond(String pattern, long epochSecond) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(epochSecond),
ZoneId.systemDefault());
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}


/**
* 按照給定的時間日期模版,將時間戳轉換成字串形式

* @param dateTimeFormatter
*            模版
* @param epochSecond
*            時間戳
* @return 轉換後的字串
*/
public static String formatEpochSecond(DateTimeFormatter dateTimeFormatter, long epochSecond) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(epochSecond),
ZoneId.systemDefault());
return localDateTime.format(dateTimeFormatter);
}


/**
* 將一種時間日期字串轉換成另外一種形式

* @param oldPattern
*            舊的時間日期字串樣式 "yyyy-MM-dd HH:mm:ss"
* @param oldDateTime
*            舊的時間日期字串 2018-05-08 16:13:48
* @param newPattern
*            新的時間日期字串樣式 "MM-dd"
* @return 轉換後的字串 05-08
*/
public static String parseStrToNewStr(String oldPattern, String oldDateTime, String newPattern) {
LocalDateTime localDateTime = LocalDateTime.parse(oldDateTime, DateTimeFormatter.ofPattern(oldPattern));
return localDateTime.format(DateTimeFormatter.ofPattern(newPattern));
}


/**
* 將一種時間日期字串轉換成另外一種形式

* @param oldDateTimeFormatter
*            舊的時間日期字串樣式
* @param oldDateTime
*            舊的時間日期字串
* @param newDateTimeFormatter
*            新的時間日期字串樣
* @return 轉換後的字串
*/
public static String parseStrToNewStr(DateTimeFormatter oldDateTimeFormatter, String oldDateTime,
DateTimeFormatter newDateTimeFormatter) {
LocalDateTime localDateTime = LocalDateTime.parse(oldDateTime, oldDateTimeFormatter);
return localDateTime.format(newDateTimeFormatter);
}


/**
* 將給定的時間日期字串按照指定的模版解析成時間戳

* @param pattern
*            模版,例如"yyyy-MM-dd HH:mm:ss"
* @param dateTime
*            時間日期字串 2018-05-08 16:13:48
* @return 時間戳 1525767228000
*/
public static long parseDateTime(String pattern, String dateTime) {
LocalDateTime localDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern(pattern));
Instant instant = localDateTime.atZone(ZONE_ID).toInstant();
return instant.toEpochMilli();
}


/**
* 將給定的時間日期字串按照指定的模版解析成時間戳

* @param dateTimeFormatter
*            模版
* @param dateTime
*            時間日期字串
* @return 時間戳
*/
public static long parseDateTime(DateTimeFormatter dateTimeFormatter, String dateTime) {
LocalDateTime localDateTime = LocalDateTime.parse(dateTime, dateTimeFormatter);
Instant instant = localDateTime.atZone(ZONE_ID).toInstant();
return instant.toEpochMilli();
}


/**
* 將給定的時間日期字串按照預設的模版解析成時間戳 "yyyy-MM-dd HH:mm:ss"

* @param dateTime
*            2018-05-08 16:13:48
* @return 時間戳 1525767228000
*/
public static long DefaultParseDateTime(String dateTime) {
LocalDateTime localDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern(DEFAULT_PATTERN));
Instant instant = localDateTime.atZone(ZONE_ID).toInstant();
return instant.toEpochMilli();
}


/**
* 按照給定的格式獲取昨天這個時候的時間日期字串

* @param dateTimeFormatter
*            時間日期格式
* @return
*/
public static String yesterdayStr(DateTimeFormatter dateTimeFormatter) {
LocalDateTime localDateTime = LocalDateTime.now().plusDays(-1);
return localDateTime.format(dateTimeFormatter);
}


/**
* 按照給定的格式獲取昨天這個時候的時間日期字串

* @param pattern
*            時間日期格式
* @return
*/
public static String yesterdayStr(String pattern) {
LocalDateTime localDateTime = LocalDateTime.now().plusDays(-1);
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}


/**
* 按照給定的格式獲取當前時間日期字串

* @param pattern
*            時間日期格式
* @return
*/
public static String todayStr(String pattern) {
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}


/**
* 按照給定的格式獲取當前時間日期字串

* @param dateTimeFormatter
*            時間日期格式
* @return
*/
public static String todayStr(DateTimeFormatter dateTimeFormatter) {
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.format(dateTimeFormatter);
}


/**
* 獲取昨天這個時間的時間戳

* @return 時間戳
*/
public static long yesterday() {
LocalDateTime localDateTime = LocalDateTime.now().plusDays(-1);
return localDateTime.atZone(ZONE_ID).toInstant().toEpochMilli();
}
}

相關推薦

金額元分之間轉換工具

import java.math.BigDecimal;/** *金額元分之間轉換工具類 */public class AmountUtils { /**金額為分的格式 */ public static final String CURRENCY_FEN_REGEX = "^(([1-9]{1}\

Java8之後常用時間日期之間轉換工具

package com.ilike.time;import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.DateTimeFor

Android中日期時間之間轉換工具

以下是我目前用到過的,後期如果遇到其他需求也會補上的,各位朋友遇到了什麼轉換也可以提示。 package com.example.zyt.myutilslist.utils; import android.util.Log; import java.text.ParseException;

Python時間日期時間之間轉換

clas mktime 指定日期 格式 日期格式 del 當前時間 格式轉換 other #1.將字符串的時間轉換為時間戳方法: a = "2013-10-10 23:40:00" #將其轉換為時間數組 import time timeArray = time.strp

日期時間轉換工具

import org.apache.commons.lang3.StringUtils; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; imp

Oracle中時間日期格式轉換常用日期函式

我的第一篇部落格,記錄學習,分享生活。 Oracle時間日期格式轉換: 主要有兩種格式,一種為日期格式date,一種為字元格式char。 查詢當前日期: select sysdate from dual; 將日期轉化為字元格式,可以對日期進行一些操作 --顯示所有僱員的姓名和加

Java生成隨機數工具,進位制之間轉換工具,獲取指定時間時間格式轉換工具

廢話不多說,貢獻一下code 1.編號生成工具 import org.apache.commons.lang3.StringUtils; import java.math.BigInteger; import java.text.SimpleDa

JS獲取時間的相關函式及時間戳與時間日期之間轉換

概述 Date物件是JavaScript提供的日期和時間的操作介面。它可以表示的時間範圍是,1970年1月1日00:00:00前後的各1億天(單位為毫秒)。 Date物件可以作為普通函式直接呼叫,返回一個代表當前時間的字串。 Date() // "Tue De

Java中獲取時間以及java.util和java.sql之間時間日期轉換

目錄 一、獲取時間和日期 通過java.util從系統獲取當前時間 通過java.sql型別資料獲取時間 將字串轉換成java.util.Date型別資料 將毫秒數轉換成java.util.Date型別資料 二、資料庫中儲存日期的三種資料型別 三、資料庫中三種資料對應

轉換日期格式的工具

ring mage code edate print util println pan date() 寫一個工具類,用來轉換固定的日期格式: import java.text.SimpleDateFormat; import java.util.Date; public

時間 & 時間之間 轉換

轉換 for lis gen brush -m 時間戳 rate ava 一、時間轉換成時間戳 try {  DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   Date date = df.par

Java時間日期格式轉換

當前 所在 monday 獲取時間 第一周 獲取 字符串轉換 處理 last import java.text.*; import java.util.Calendar; public class VeDate { /** * 獲取現在時間 *

Java實現時間日期格式轉換示例

simple ati except else ktr new bsp 時間 .text package com.hanqi.util; import java.text.ParseException; import java.text.SimpleDateFormat;

Java時間日期格式轉換 轉自:http://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html

throws 星期四 stat 格式轉換 see blog 一是 取得數據 www Java時間格式轉換大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 獲取

Java時間格式轉換工具

string stact 修改 stack time mil 日期格式轉換 pla gettime 把當前時間修改成指定時間 //把當前時間修改成指定時間 public String dateUtil(Integer seconds, String dateFo

C#常用資料型別轉換工具

using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.IO; using System.Text; /// <summary> /

Android 時間轉換工具

在做聊天頁面的時候,難免遇到要把一個時間戳轉換為一個好看的格式,每次都動手寫也太累了,在這裡給大家分享一下我的工具類吧 其中time_year、time_month等 在文字最後貼出來給大家哦。 /** * 時間轉換工具 */ public class TimeUtil {

日期轉換工具

package com.iss.iaf.workflow.core.utils; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.

Java字串CST和時間日期轉換

在工作過程中,一些業務免不了接觸到了一些對時間字串的處理,整理如下: 轉換諸如 “ Wed, 17 Oct 2018 20:17:40 CST”,“ Wed, 17 Oct 2018 20:17:40 BST”等字元時間樣式 @Test public void parse

時間轉換工具

package com.wd.tech.app.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @Projec