日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 日期calendar_java成神之——date和calendar日期的用法

發(fā)布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 日期calendar_java成神之——date和calendar日期的用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Date和Calendar日期的用法

Date類

System.currentTimeMillis() // 當前時間毫秒數(shù)

Date time = new Date();

time.getTime() // 當前毫秒值

time.setTime(100000000) // 根據(jù)毫秒值設(shè)置日期

java_util_Date和java_sql_Date的區(qū)別

java.util.Date類型的數(shù)據(jù)存到數(shù)據(jù)庫需要轉(zhuǎn)換成java.sql.Date

java.util.Date utilData = new java.util.Date();

java.sql.Date sqlData = new java.sql.Date(utilData.getTime());

SimpleDateFormat格式化時間

日期轉(zhuǎn)字符串

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");

String formattedDate = simpleDateFormat.format(Calendar.getInstance().getTime()); // 2018/09/20 04:40.03

字符串轉(zhuǎn)日期

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");

Date date = simpleDateFormat.parse("2018/09/20 04:40.03");

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);

Date date = dateFormat.parse("2018/09/20");

DateFormat的幾個屬性

SHORT 6/30/09 30/06/09

MEDIUM Jun 30, 2009 30 juin 2009

LONG June 30, 2009 30 juin 2009

FULL Tuesday, June 30, 2009 mardi 30 juin 2009

LocalDate

LocalDate用來獲取系統(tǒng)默認時間

LocalDate lDate = LocalDate.now(); // 2018-09-20 不包含時間信息

LocalDate lDate = LocalDate.of(2018, 9, 10);

LocalDate lDate = LocalDate.parse("2018-09-11");

LocalDate lDate = LocalDate.now(ZoneId.systemDefault()); // 根據(jù)系統(tǒng)默認時區(qū)獲取時間

簡單日期操作

LocalDate.now() // 2018-09-20

LocalDate.now().minusDays(1) // 2018-09-19

LocalDate.now().plusDays(1); // 2018-09-21

LocalDate.now().withMonth(6) // 2018-06-20

LocalDateTime

LocalDateTime的參數(shù)含義

LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);

LocalDateTime的使用

LocalDateTime lDateTime = LocalDateTime.now(); // 2018-09-20T16:17:54.248780300

LocalDateTime lDateTime = LocalDateTime.of(2018, 9, 10, 10, 30);

LocalDateTime lDateTime = LocalDateTime.parse("2018-09-10T10:30");

LocalDateTime lDateTime = LocalDateTime.now(ZoneId.systemDefault());

Date和LocalDate的相互轉(zhuǎn)化

Date轉(zhuǎn)換成LocalDate

Date date = Date.from(Instant.now());

LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

LocalDate轉(zhuǎn)換成Date

LocalDate lDate = LocalDate.now();

Date date = Date.from(lDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

Date和LocalDateTime的相互轉(zhuǎn)化

Date轉(zhuǎn)換成LocalDateTime

Date date = Date.from(Instant.now());

LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

LocalDateTime轉(zhuǎn)換成Date

LocalDateTime lDateTime = LocalDateTime.now();

Date date = Date.from(lDateTime.atZone(ZoneId.systemDefault()).toInstant());

Calendar

用來獲取日期的具體部分

Calendar cd = Calendar.getInstance();

int time = cd.get(Calendar.YEAR); // 獲取年份

int time = cd.get(Calendar.MONTH) 1; // 月份從0開始,獲取月份

int time = cd.get(Calendar.DAY_OF_MONTH); // 獲取天

用來設(shè)置日期的具體部分

Calendar cd = Calendar.getInstance();

cd.set(Calendar.MONTH, 8); // 設(shè)置月份為9月

cd.set(1974, 6, 2, 8, 0, 0);

cd.add(Calendar.DAY_OF_MONTH, 2); // 時間偏移

Date time = cd.getTime(); // 將Calendar轉(zhuǎn)化成Date類

GregorianCalendar

Calendar calendar = Calendar.getInstance();

Calendar calendar = new GregorianCalendar();

Calendar calendar = new GregorianCalendar(2016, Calendar.JANUARY, 1);

Calendar calendar = new GregorianCalendar(2016, Calendar.JANUARY, 1, 6, 55, 10);

calendar.add(Calendar.MONTH, -6); // 改變?nèi)掌?/p>

calendar.roll(Calendar.MONTH, -1); // 改變?nèi)掌诘哪骋徊糠?#xff0c;其他字段不變

calendar.get(Calendar.AM_PM) // 獲取某一日期部分

before_after_compareTo_equals

用來判斷時間超前還是落后

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");

Date date = simpleDateFormat.parse("2018/09/20 04:40.03");

Date date1 = simpleDateFormat.parse("2018/09/21 04:40.03");

date.after(date1) // false

date.before(date1) // true

用來判斷時間是否相等

date.compareTo(date1) // -1 返回的是日期對比的order,返回0表示相等、-1表示小、1表示大

date.equals(date1) // false

清空MILLISECOND

clear方法最好只用來清空MILLISECOND,其他的日期部分可能沒作用

Calendar c = Calendar.getInstance();

System.out.println(c.getTimeInMillis()); // 1537442289490

c.set(Calendar.MILLISECOND, 22);

System.out.println(c.getTimeInMillis()); // 1537442289022

c.clear(Calendar.MILLISECOND);

System.out.println(c.getTimeInMillis()); // 1537442289000

isBefore_isAfter_compareTo_equals

LocalDate lDate1 = LocalDate.of(2018, 9, 20);

LocalDate lDate2 = LocalDate.of(2012, 9, 19);

lDate1.isAfter(lDate2); //true

lDate1.isBefore(lDate2); //false

lDate1.compareTo(lDate2); // -1 返回的是日期對比的order,返回0表示相等、-1表示小、1表示大

lDate1.equals(lDate2); // false

lDate1.isEqual(lDate2); // false

時區(qū)

TimeZone.getDefault().getDisplayName(); // 中國標準時間

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

sdf.setTimeZone(TimeZone.getTimeZone("China/Shang_Hai"));

System.out.println(sdf.format(date)); // 2018-09-20 11:44:22

sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));

System.out.println(sdf.format(date)); // 2018-09-20 12:44:22

時間差值

LocalDate d1 = LocalDate.of(2018, 9, 10).plusDays(1);

LocalDate d2 = LocalDate.of(2018, 9, 16).plusMonths(1);

long days = ChronoUnit.DAYS.between(d1, d2); // 35

Instant

Instant now = Instant.now(); // 2018-09-20T11:55:12.234452700Z

LocalTime

LocalTime localtime = LocalTime.now(); // 20:03:57.909365400

LocalTime time1 = LocalTime.of(1, 0, 0);

LocalTime time2 = LocalTime.of(3, 1, 10);

time1和time2差值

System.out.println( time1.until(time2, ChronoUnit.MINUTES) ); // 121

System.out.println( time1.until(time2, ChronoUnit.HOURS) ); // 2

System.out.println( time1.until(time2, ChronoUnit.SECONDS) ); // 7270

System.out.println( ChronoUnit.MINUTES.between(time1, time2) ); // 121

System.out.println( ChronoUnit.HOURS.between(time1, time2) ); // 2

System.out.println( ChronoUnit.SECONDS.between(time1, time2) ); // 7270

時區(qū)

ZoneId zone = ZoneId.of("Asia/Shanghai");

LocalTime time1 = LocalTime.now();

LocalTime time2 = LocalTime.now(zone);

LocalTime time3 = LocalTime.parse("20:10:30");

時間差

long timeDiff = Duration.between(time1, time3).toMinutes();

long timeDiff1 = ChronoUnit.MINUTES.between(time1, time3);

System.out.println(time1); // 20:13:38.239060900

System.out.println(time2); // 20:13:38.239060900

System.out.println(time3); // 20:10:30

System.out.println(timeDiff); // -3

System.out.println(timeDiff1); // -3

結(jié)語

本文章是java成神的系列文章之一

如果你想知道,但是本文沒有的,請下方留言

我會第一時間總結(jié)出來并發(fā)布填充到本文

來源:http://www.icode9.com/content-1-29301.html

總結(jié)

以上是生活随笔為你收集整理的java 日期calendar_java成神之——date和calendar日期的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。