知识库 知识库
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)

Jim FuckPPT

Java小学生
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)
  • Hyperskill - Java

  • 练习题

  • Frank - Java与生活

  • Frank - Java API进阶

    • Base API

      • Java API定义和用处
      • Number & Math
      • Random
      • Date & Calendar
        • Timestamp (Unix Time)
        • Date
        • 格式化日期 DateFormat
        • Calendar
      • System
    • Unit Test and Main function

    • Throwable

  • 学习笔记

  • Java
  • Frank - Java API进阶
  • Base API
Jim
2022-09-28
目录

Date & Calendar

# Timestamp (Unix Time)

当前 Unix 时间 (opens new window) (time.is)

# Date

Java 11 API - Date (opens new window)

Data 这个类里面的构造器、方法基本都过时了。官方推荐使用 Calendar (抽象类)作为替代。

System.out.println(new Date());
1

打印结果类似于:“Thu Sep 29 16:38:03 CST 2022”。

当然new java.util.Date()是一个对象,它不可能长这样。这里“打印一个对象”利用的是toString()方法。

java.util.Date()自带了一个toString()方法。

System.out.println(new Date(1664440683L * 1000));  // Thu Sep 29 16:38:03 CST 2022
1

提示

Date(long date) 可接受一个指定时间的参数。如果是 date 传的是 Unix 时间,则需要乘以 1000。这是因为 date 参数以毫秒(millisecond)为单位。

使用 System.currentTimeMillis() 获取当前时间:

System.out.println(new Date(System.currentTimeMillis()));  // Sat Oct 01 11:40:38 CST 2022
1

# 格式化日期 DateFormat

利用抽象类java.text.DateFormat的子类java.text.SimpleDateFormat来对日期格式化。

Java 11 API - SimpleDateFormat (opens new window)

Date date = new Date(1664440683L * 1000);

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

System.out.println(dateFormat.format(date));
1
2
3
4
5
2022-09-29 16:38:03
1

# Calendar

Java 11 API - Calendar (opens new window)

Calendar 抽象类提供很多获取和设置时间的静态的日历字段(calendar field)。并且提供一个类方法(Calendar.getInstance())来生成一个实例(单例)。

Calendar rightNow = Calendar.getInstance();  // rightNow 对象表示当前时间
1

Calendar的 getInstance() 方法返回一个Calendar对象,该对象的Calendar字段已使用当前日期和时间进行初始化。也可以通过

int year = rightNow.get(Calendar.YEAR);            // 年
int month = rightNow.get(Calendar.MONTH) + 1;       // 月
int dayOfMonth = rightNow.get(Calendar.DAY_OF_MONTH);    // 日

System.out.printf("%d/%d/%d", year, month, dayOfMonth);  // 2022/9/30

int hour = rightNow.get(Calendar.HOUR); // 当前在哪个小时 - 12小时制
int hourOfDay = rightNow.get(Calendar.HOUR_OF_DAY);  // 当前在哪个小时 - 24小时制
int date = rightNow.get(Calendar.DATE);  // 当前月的天数
int dayOfWeek = rightNow.get(Calendar.DAY_OF_WEEK);  // 今天是周几
int dayOfYear = rightNow.get(Calendar.DAY_OF_YEAR);  // 今天是这一年的哪一天
1
2
3
4
5
6
7
8
9
10
11

提示

注意 Calendar.MONTH 通常需要 +1。因为它是从 0 起始的,而像 Calendar.YEAR 或 Calendar.DAY_OF_MONTH 则不用 +1。

MONTH 从 0 起始的原因可能是一个古老的问题,详见"你绝对想不到为什么计算月份是从 0 开始计数" (opens new window)

get() 方法返回给定calendar field的值。

使用 set() 方法设定日期:

rightNow.set(1314, 4, 20);  // 月份会给出警告并建议以类似 Calendar.MAY 这样的字段形式表示

int year = rightNow.get(Calendar.YEAR);            // 年
int month = rightNow.get(Calendar.MONTH) + 1;       // 月(注意是 +1 了的)
int dayOfMonth = rightNow.get(Calendar.DAY_OF_MONTH);    // 日

System.out.printf("%d/%d/%d\n", year, month, dayOfMonth);  // 2022/9/30
System.out.println(rightNow);	// toString()
1
2
3
4
5
6
7
8

注意

再次强调:当可以直接使用 System.out.println() 函数直接打印一个对象的时候,这个对象的类往往是具有 toString() 方法的

1314/5/20
java.util.GregorianCalendar[time=-20688598039456,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1314,MONTH=4,WEEK_OF_YEAR=21,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=140,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=12,SECOND=40,MILLISECOND=544,ZONE_OFFSET=28800000,DST_OFFSET=0]
1
2
编辑 (opens new window)
上次更新: 2022/10/04, 21:45:45
Random
System

← Random System→

最近更新
01
《挪威的森林》
04-14
02
青钢影
04-14
03
Processing strings
02-18
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Jim Frank | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式