三種時區表示方式,LocalDate轉成字符串日期和ts的方法
LocalDateTime localDateTime = null;
//時區寫法1:
String timezone = "Asia/Shanghai";
//###### 字符串時間轉ts
ZoneId zoneId = ZoneId.of(timezone);
localDateTime = LocalDateTime.parse("2018-06-26 16:29:42", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
long milliSecond = localDateTime.atZone(zoneId).toInstant().toEpochMilli();
System.out.println("milliSecond:" + milliSecond);
//###### ts轉字符串時間
Instant instant = Instant.ofEpochMilli(milliSecond);
String date = LocalDateTime.ofInstant(instant, zoneId).toString();
System.out.println("date:" + date);
/**********************************************************************************/
//時區寫法2:
timezone = "GMT+8";
//###### 字符串時間轉ts
zoneId = ZoneId.of(timezone);
localDateTime = LocalDateTime.parse("2018-06-26 16:29:42", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
milliSecond = localDateTime.atZone(zoneId).toInstant().toEpochMilli();
System.out.println("milliSecond:" + milliSecond);
//###### ts轉字符串時間
instant = Instant.ofEpochMilli(milliSecond);
date = LocalDateTime.ofInstant(instant, zoneId).toString();
System.out.println("date:" + date);
/**********************************************************************************/
//時區寫法3:
timezone = "+8";
//###### 字符串時間轉ts
zoneId = ZoneId.of(timezone);
localDateTime = LocalDateTime.parse("2018-06-26 16:29:42", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
milliSecond = localDateTime.atZone(zoneId).toInstant().toEpochMilli();
System.out.println("milliSecond:" + milliSecond);
//###### ts轉字符串時間
instant = Instant.ofEpochMilli(milliSecond);
date = LocalDateTime.ofInstant(instant, zoneId).toString();
System.out.println("date:" + date);
/**********************************************************************************/
輸出結果如下:
milliSecond:1530001782000
date:2018-06-26T16:29:42
milliSecond:1530001782000
date:2018-06-26T16:29:42
milliSecond:1530001782000
date:2018-06-26T16:29:42