JavaApi高级编程(四)Date类以及如何使用

简介: JavaApi高级编程(四)Date类以及如何使用

一、Date的基本概念以及使用


1、Date 类表示日期和时间(该类大部分方法已过时)


2、提供操纵日期和时间各组成部分的方法


3、Date 类的最佳应用之一是获取系统当前时间


4、获取系统当前时间是一个长整型数据Long, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据,表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数.


案例一:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestNew {
  public static void main(String[] args) throws ParseException {
    /*
     *  Date:时间类 
     */
    //实例化对象:当前的系统时间
    Date date = new Date();
//    System.out.println(date);
    /*
     * 1秒=1000毫秒
     */
    Date d = new Date(60000);
    System.out.println(d);
    //获取年
    int year = date.getYear()+1900;
    System.out.println(year);
    //获取月
    int month = date.getMonth()+1;
    System.out.println(month);
    //获取日
    int day = date.getDate();
    System.out.println(day);
    //获取周几
    int week = date.getDay();
    System.out.println(week);
    //获取时
    int hour = date.getHours();
    System.out.println(hour);
    //获取分
    int m = date.getMinutes();
    System.out.println(m);
    //获取秒
    int s = date.getSeconds();
    System.out.println(s);
    //获取1970年1月1日0:0:0 到指定时间之间的毫秒数
    long time = date.getTime();
    System.out.println(time);


二、DateFormat的应用


1、DateFormat日期格式化类(抽象类)

       A、String format(Date date)  方法用于格式化时间


       B、static DateFormat getDateInstance()   获取日期的DateFormat 对象


       C、static DateFormat getDateTimeInstance()   获取日期-时间的DateFormat 对象 static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)获取给定    日期和时间格式化风格 DateFormat 对象 (可选参数 short,full, long, medium ,)

2、功能:完成日期的显示格式化

       A、只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEEE-MM-dd-yyyy",


       B、我们就能够指明自己想要的格式. 然后调用DateFormat(Date date)方法,得到想要的格式。


       C、 EEEE是星期, MM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yyyy"会显示 星期五-02-27-2009

案例二:

 

//实例化格式一个指定格式的 格式对象
  SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
  System.out.println("格式化之前:"+date);
  //转换格式
  String sDate = sdf.format(date);
  System.out.println("格式化之后:"+sDate);
  //定义一个 字符串的时间
  String str = "1999年12月31日 23:59:59";
  //实例化一个时间格式对象
  SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");
  //解析字符串时间
  Date d2 =  sdf2.parse(str);
  System.out.println(d2);


三、Calender类


问题:

问:我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?  

答:使用Calendar 类。Calendar 类也是一个抽象类,它有一个子类GregorianCalendar,接下来我会利用这个子类来演示这个过程,请看以下代码  


//使用GregorianCalendar类获取时间相关信息
    calendar.get(Calendar.YEAR) 获取年
    calendar.get(Calendar.MONTH) + 1) 获取月
    cal.add(Calendar.YEAR, 2); //年上加2年
    private void fun3() {
  Calendar cal = new GregorianCalendar();
        //设置cal的年份为 2012年
  cal.set(Calendar.YEAR, 2012);
        //打印年份
  System.out.println(cal.get(Calendar.YEAR)); 
        //设置月份
  cal.set(Calendar.MONTH, 9); 
  System.out.println(cal.get(Calendar.MONTH));
        //设置年月日
  cal.set(2018, 3, 2);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  System.out.println(sdf.format(cal.getTime()));
  cal.add(Calendar.YEAR, 2); //年上加2年
  cal.add(Calendar.MONTH, 2);//月上加2
  System.out.println(sdf.format(cal.getTime()));
  System.out.println(cal.get(Calendar.DAY_OF_WEEK));//获取星期几
//创建一个日期对象
        //让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 
        //这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. 
        import java.util.Date;
        public class DateExample1{  
              public static void main(String[] args){
              Date date = new Date(); 
              System.out.println(date.getTime()); 
      }
}

1、日期数据的定制格式:

import java.text.SimpleDateFormat;
import java.util.Date;
 public class DateExample2{
     public static void main(String[] args) {
     SimpleDateFormat bartDateFormat = new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”); 
// E  星期中的天数, M  年中的月份 , D  年中的天数,y年 
     Date date = new Date();         
     System.out.println(bartDateFormat.format(date));    
    }
}

2、日期格式化方法:

Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:  

toDateString() //以特定于实现的格式显示星期几、月、日和年;    
  toTimeString() //以特定于实现的格式显示时、分、秒和时区;  
  toLocaleDateString() //以特定于地区的格式显示星期几、月、日和年;  
  toLocaleTrimeString() //以特定于实现的格式显示时、分、秒;  
  toUTCString() //以特定于实现的格式完整的UTC日期。

与toLocaleString()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此没有哪一个方法能够用来在用户界面中显示一致的日期信息。

3、日期/时间组件方法:

       1、getUTCMinutes() 返回UTC日期中的分钟数(O到59)。


       2、setMinutes(分) 设置日期中的分钟数。传入的值超过59则增加小时数


       3、setUTCMinutes(分) 设置UTC日期中的分钟数。传入的值超过59则增加小时数


       4、getSeconds() 返回日期中的秒数(O至IJ59)。  


        5、getUTCSeconds() 返回UTC日期中的秒数(0到59)。    


       6、setSeconds(秒) 设置日期中的秒数。传人的值超过了59会增加分钟数  


       7、set UTCSeconds(秒) 设置UTC日期中的秒数。传人的值超过了59会增加分钟数


       8、getMilliseconds() 返回日期中的毫秒数


       9、getUTCMilliseconds() 返回UTC日期中的毫秒数


       10、setMilliseconds(毫秒) 设置日期中的毫秒数


       11、setUTCMilliseconds(毫秒) 设置UTC日期中的毫秒数


       12、getTimezoneOffset() 返回本地时间与UTC时间相差的分钟数。


例如,美国东部标准时间返回300。在某地进入夏令时的情况下,这个值会有所变化

4、日期和时间模式

       1、字母  日期或时间元素  表示  示例  


       2、y  年  Year  1996; 96  


       3、M  年中的月份  Month  July; Jul; 07  


       4、w  年中的周数  Number  27  


       5、W  月份中的周数  Number  2  


       6、D  年中的天数  Number  189  


       7、d  月份中的天数  Number  10  


       8、 F  月份中的星期  Number  2  


       9、E  星期中的天数  Text  Tuesday; Tue  


       10、a  Am/pm 标记  Text  PM  


       11、H  一天中的小时数(0-23)  Number  0  


       12、k  一天中的小时数(1-24)  Number  24  


       13、K  am/pm 中的小时数(0-11)  Number  0  


       14、h  am/pm 中的小时数(1-12)  Number  12  


       15、m  小时中的分钟数  Number  30  


       16、s  分钟中的秒数  Number  55  


       17、S  毫秒数  Number  978  


       18、z  时区  General time zone  Pacific Standard Time; PST; GMT-08:00  


       19、Z  时区  RFC 822 time zone  -0800  

相关文章
|
6月前
|
缓存 JSON 安全
如何修复 Postman 中的 403 Forbidden 错误
当执行请求时,出现 403 Forbidden 错误可能有几个原因,在本文中,我们将学习如何修复来自 Postman 的 403 错误。
|
小程序 API 索引
uniapp中uview组件库的DatetimePicker 选择器的用法
uniapp中uview组件库的DatetimePicker 选择器的用法
2458 0
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
353 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
19天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1335 8
|
7天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
340 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
6天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
18天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1428 87