最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解java long 存儲時間戳

 更新時間:2018年10月19日 10:29:55   作者:鯨冬香  
存儲時間打算用時間戳來存儲,打算用long類型來代表時間戳,這篇文章主要介紹了深入理解java long 存儲時間戳,非常具有實用價值,需要的朋友可以參考下

存儲時間打算用時間戳來存儲,打算用long類型來代表時間戳,但是在用long類型存儲時間戳的時候出了點問提。

在寫單元測試的時候,用一個long類型來存儲時間戳,發(fā)現(xiàn)編譯器報錯了

剛開始猜想可能是因為long不夠大,存儲不了。然后用double類型來存:

發(fā)現(xiàn)還是報錯了,仔細想想不對,double存儲的數(shù)量應該時很大的,不會連時間戳都存儲不了。
在后面加上小數(shù)點之后,居然可以存了:

加了小數(shù)點之后就能存了,仔細一想,之前沒加小數(shù)點的時候他是整數(shù),加了小數(shù)點之后變成了浮點數(shù),猜測之前沒加上小數(shù)點的時間戳是一個整形的字面值,加上小數(shù)點后是一個浮點數(shù)的字面值,之前的報錯應該不是存儲類型的問題,而是字面值范圍超出了。

用字符串來測試:

把時間戳變成字符串的字面值,在將他解析成long類型的和int類型的,然后在把他們輸出:

發(fā)現(xiàn)第一個long類型的成功輸出了,而int類型的卻報了一個number的錯誤.

這說明long是可以存儲時間戳的,而int存儲不了時間戳,所以判斷之前不能存儲時因為字面值為整形超出了范圍。

Java 各種日期/時間 對象轉(zhuǎn)Long時間戳

package cn.xbz;
 
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
 
/**
 * @title 各種日期/時間對象轉(zhuǎn)時間戳
 * @author Xingbz
 * @createDate 2018-5-18
 */
public class DateTime2MillisDemo {
 
 private static final String FORMAT_STR = "yyyy-MM-dd HH:mm:ss";
 
 public static void main(String[] args) {
  System.out.println("====== JDK7及之前 ======");
  Long l1 = getMillis1();
  Long l2 = date2Millis(new Date());
  Long l3 = calendar2Millis(Calendar.getInstance());
  Long l4 = string2Millis(new SimpleDateFormat(FORMAT_STR).format(new Date()) , FORMAT_STR);//為了與以上幾個保持一致
  System.out.println(l1 + "\n" + l2 + "\n" + l3 + "\n" + l4);//會有幾毫秒的差別
 
  System.out.println("====== JDK8 ======");
  Long l5 = getMillis2();
  Long l6 = localDateTime2Millis(LocalDateTime.now());
  Long l7 = localDate2Millis(LocalDate.now());
  Long l8 = clock2Millis(Clock.systemUTC());
  Long l9 = zoneDateTime2Millis(ZonedDateTime.now());
  Long l10 = string2MillisWithJDK8(LocalDateTime.now().format(DateTimeFormatter.ofPattern(FORMAT_STR)) , FORMAT_STR);//為了與以上幾個保持一致
  System.out.println(l5 + "\n" + l6 + "\n" + l7 + "\n" + l8 + "\n" + l9 + "\n" + l10);//會有幾毫秒的差別
 }
 
 /* JDK7及之前 */
 
 /** 獲取時間戳 */
 public static Long getMillis1() {
  return System.currentTimeMillis();
 }
 
 /** Date轉(zhuǎn)時間戳 */
 public static Long date2Millis(Date date) {
  return date.getTime();
 }
 
 /** Calendar轉(zhuǎn)時間戳 */
 public static Long calendar2Millis(Calendar calendar) {
  return calendar.getTime().getTime();
 }
 
 /** 日期字符串轉(zhuǎn)時間戳 */
 public static Long string2Millis(String dateStr, String formatStr) {
  try {
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatStr);
   return simpleDateFormat.parse(dateStr).getTime();
  } catch (Exception e) {
   return 0L;
  }
 }
 
 /* JDK8 */
 
 /** 獲取時間戳 */
 public static Long getMillis2() {
  return Instant.now().toEpochMilli();
 }
 
 /** LocalDateTime轉(zhuǎn)時間戳 */
 public static Long localDateTime2Millis(LocalDateTime localDateTime) {
  return localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
 }
 
 /** LocalDate轉(zhuǎn)時間戳 */
 public static Long localDate2Millis(LocalDate localDate) {
  return LocalDateTime.of(localDate, LocalTime.MIN).toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
 }
 
 /** Clock轉(zhuǎn)時間戳 */
 public static Long clock2Millis(Clock clock) {
  return clock.millis();
 }
 
 /** ZoneDateTIme轉(zhuǎn)時間戳(這個不常用吧~) */
 public static Long zoneDateTime2Millis(ZonedDateTime zonedDateTime) {
  return zonedDateTime.toLocalDateTime().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();//!!!好費勁
 }
 
 /** String轉(zhuǎn)時間戳(JDK8) */
 public static Long string2MillisWithJDK8(String dateStr , String formatStr) {
  return LocalDateTime.parse(dateStr , DateTimeFormatter.ofPattern(formatStr)).toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
 }
}
 

輸出如下 :

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot事件發(fā)布與監(jiān)聽超詳細講解

    SpringBoot事件發(fā)布與監(jiān)聽超詳細講解

    今天去官網(wǎng)查看spring boot資料時,在特性中看見了系統(tǒng)的事件及監(jiān)聽章節(jié),所以下面這篇文章主要給大家介紹了關于SpringBoot事件發(fā)布和監(jiān)聽的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • SpringBoot之配置logging日志及在控制臺中輸出過程

    SpringBoot之配置logging日志及在控制臺中輸出過程

    這篇文章主要介紹了SpringBoot之配置logging日志及在控制臺中輸出過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    這篇文章主要介紹了Java內(nèi)部bean和級聯(lián)屬性用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 關于elcipse 安裝lombok插件解決 @Slf4j 等找不到log變量問題

    關于elcipse 安裝lombok插件解決 @Slf4j 等找不到log變量問題

    這篇文章主要介紹了關于elcipse 安裝lombok插件解決 @Slf4j 等找不到log變量問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Filter、Servlet、Listener的學習_動力節(jié)點Java學院整理

    Filter、Servlet、Listener的學習_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了Filter、Servlet、Listener的學習資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Spring?WebClient實戰(zhàn)示例

    Spring?WebClient實戰(zhàn)示例

    本文主要介紹了Spring?WebClient實戰(zhàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java設計模式策略模式圖文示例詳解

    java設計模式策略模式圖文示例詳解

    這篇文章主要為大家介紹了java設計模式策略模式圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Java實現(xiàn)文件上傳至服務器的方法

    Java實現(xiàn)文件上傳至服務器的方法

    這篇文章主要為大家詳細介紹了Java實現(xiàn)文件上傳至服務器的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • SpringMVC配置攔截器實現(xiàn)登錄控制的方法

    SpringMVC配置攔截器實現(xiàn)登錄控制的方法

    這篇文章主要介紹了SpringMVC配置攔截器實現(xiàn)登錄控制的方法,SpringMVC讀取Cookie判斷用戶是否登錄,對每一個action都要進行判斷,有興趣的可以了解一下。
    2017-03-03
  • 使用feign配置網(wǎng)絡ip代理

    使用feign配置網(wǎng)絡ip代理

    這篇文章主要介紹了使用feign配置網(wǎng)絡ip代理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論

隆德县| 岑溪市| 特克斯县| 阜宁县| 阿坝县| 镇雄县| 陈巴尔虎旗| 罗定市| 望都县| 察哈| 彩票| 观塘区| 游戏| 辽宁省| 乌拉特后旗| 区。| 辽阳县| 普格县| 黄冈市| 凤台县| 肇东市| 汶川县| 景洪市| 腾冲县| 松潘县| 云南省| 长汀县| 偏关县| 民勤县| 安新县| 邳州市| 长汀县| 苏尼特左旗| 余干县| 遂平县| 衢州市| 开鲁县| 玉门市| 宣城市| 科技| 大悟县|