首页 > 编程语言 >【JavaSE】时间API

【JavaSE】时间API

时间:2023-12-02 16:47:04浏览次数:44  
标签:java System SimpleDateFormat API 时间 println import JavaSE Calendar

JDK8版本之前的时间API(了解)

Data类

SimpleDateFormat类

SimpleDateFormat类指定格式查API帮助文档即可

SimpleDateFormatDemo.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
//        SimpleDateFormat dateFormat = new SimpleDateFormat(); // 默认日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日"); // 指定日期格式

        Date date = new Date();
        System.out.println(dateFormat.format(date));

        String s = "2023年12月02日";
        System.out.println(dateFormat.parse(s)); // 调用.parse必须保证字符串和SimpleDateFormat设定的日期格式相同才能解析
    }
}
计算你来到这个世界多少天
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class BtdCompute {
    public static void main(String[] args) throws ParseException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入您的生日:xxxx年xx月xx日");
        String s = in.next();

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        Date btd = dateFormat.parse(s);

        Date now = new Date();

        long ms = now.getTime() - btd.getTime();
        long d = ms / 1000 / 60 / 60 / 24;
        System.out.println(d);
        long y = d / 365;
        System.out.println(y);
    }
}

Calendar类


  • Calendar 类是一个抽象类,不能创建对象。
    Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:
   Calendar rightNow = Calendar.getInstance();
  • 获取和设置日期对象时,一般通过调用Calendar的静态成员变量来实现。
    注意:
    月份是0~11
    星期1~7分别对应[日 一 二 三 四 五 六]
Calendar的get方法样例
import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR));
        /*月份是0~11*/
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        /*星期是1~7
        日 一 二 三 四 五 六
        1  2  3  4 5  6 7
        */
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
    }
}

Calendar和Date类对象转换

判断某一天是否是疯狂星期四
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest1 {
    public static void main(String[] args) throws ParseException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入日期:xxxx年xx月xx日");
        String s = in.next();

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = dateFormat.parse(s);

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date); // 将Date对象转换为Calendar对象

//        calendar.set(2023,11,30); //设置日期为2023年12月30(周六)
//        calendar.set(2023,10,30); //设置日期为2023年11月30(周四)

        int week = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println((week == 5));
    }
}
判断输入日期是一年中的哪一天
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class CalendarTest2 {
    public static void main(String[] args) throws ParseException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入日期:xxxx年xx月xx日");
        String s = in.next();

        SimpleDateFormat dateFormat = new SimpleDateFormat("yy年MM月dd日");
        Date date = dateFormat.parse(s);

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
    }
}

JDK8版本及之后的时间API(即查即用即可)

日历类

日期格式化类

时间类

时间间隔工具类

根据输入的生日判断年龄
public class GetAge {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入生日:xxxx年xx月xx日");
        String s = in.next();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年M月d日");
        LocalDate btd = LocalDate.parse(s, dateTimeFormatter);

        LocalDate now = LocalDate.now();

        System.out.println(ChronoUnit.YEARS.between(btd, now));
    }
}

标签:java,System,SimpleDateFormat,API,时间,println,import,JavaSE,Calendar
From: https://www.cnblogs.com/Eve7Xu/p/17871324.html

相关文章

  • ElasticSearch之Get index API
    获取指定索引的基本信息。命令样例如下:curl-XGET"https://localhost:9200/testindex_001?pretty"--cacert$ES_HOME/config/certs/http_ca.crt-u"elastic:ohCxPH=QBE+s5=*lo7F9"执行结果的样例,如下:{"testindex_002":{"aliases":{},......
  • ElasticSearch之Exists API
    检查指定名称的索引是否存在。命令样例如下:curl-I"https://localhost:9200/testindex_002?pretty"--cacert$ES_HOME/config/certs/http_ca.crt-u"elastic:ohCxPH=QBE+s5=*lo7F9"假如索引不存在,则执行结果的样例,如下:HTTP/1.1404NotFoundX-elastic-product:Elastics......
  • ElasticSearch之Open index API
    打开指定的索引。命令样例如下:curl-XPOST"https://localhost:9200/testindex_003/_open?pretty"--cacert$ES_HOME/config/certs/http_ca.crt-u"elastic:ohCxPH=QBE+s5=*lo7F9"执行结果的样例,如下:{"acknowledged":true,"shards_acknowledge......
  • 学习笔记4:JavaSE & API(网络编程 & 多线程)
    1、java.net.Socket:(1)定义:Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互。(2)方法getInputStream():获取输入流,返回值是InputStream的一个子类实例。ge......
  • ElasticSearch之Close index API
    关闭指定的索引。索引关闭之后:停止对读、写操作的响应。停止检索操作的响应。在索引关闭前,允许执行的操作,关闭之后均不允许执行。ElasticSearch取消对索引的相关维护操作,包含内存中的数据结构,以及保存在存储中的数据。占用的存储空间,并不会主动释放。ElasticSearch不会删除......
  • ElasticSearch之Clone index API
    使用已有的索引,复制得到一个索引。关闭testindex_001的写入操作,命令样例如下:curl-XPUT"https://localhost:9200/testindex_001/_settings?pretty"-H'Content-Type:application/json'-d'{"settings":{"index.blocks.write":true}}......
  • ElasticSearch之Create index API
    创建指定名称的index。命令样例如下:curl-XPUT"https://localhost:9200/testindex_002?pretty"-H'Content-Type:application/json'-d'{"settings":{"index":{"number_of_shards":3,"number......
  • ElasticSearch之Clear cache API
    本方法用于清理缓存。命令样例如下:curl-XPOST"https://localhost:9200/testindex_001/_cache/clear?pretty"--cacert$ES_HOME/config/certs/http_ca.crt-u"elastic:ohCxPH=QBE+s5=*lo7F9"执行结果的样例,如下:{"_shards":{"total":2,......
  • 【JavaSE】一些常见API(Object、Objects、Math、System、BigDecimal、包装类、Arrays)
    Object类Object类介绍toString方法直接println(对象名),默认会自动调用(对象名.toString),而.toString默认是返回地址信息->全类名(包名+类名)@地址的十六进制哈希值,因此如果println(对象名)控制台没有输出地址值,说明该类一定重写了Object类的toString方法,比如String类和Arr......
  • Java之API详解之Biginteger类的详解
     6BigInteger类6.1引入平时在存储整数的时候,Java中默认是int类型,int类型有取值范围:-2147483648~2147483647。如果数字过大,我们可以使用long类型,但是如果long类型也表示不下怎么办呢?就需要用到BigInteger,可以理解为:大的整数。有多大呢?理论上最大到42亿的21亿次方基本上在内存撑......