Java基础:第十六讲 日期和时间的使用

Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期 Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期题目代码思路代码 题目 代码 思路 Date 对象 = new Date(毫秒数) Date对象.toString()即可输出 代码 import java.util.Date; public class Test3_Date { public static void main(String[] args) { Date 阅读详情

 

在Java 应用中,日期和时间作为基本的信息类型应用的特别广泛,例如获取当前时间,计算某些操作执行的时间等。日期处理相关的类包括Date 和Calendar ,通过Date 和Calendar 可以获取当前时间,对时间进行一些运算,获取时间中的年、月、日、时、分、秒和星期等信息。在输入和输出的时候经常用到字符串形式的时间,这就需要时间和字符串之间的相互转换,系统提供了DateFormat 和SimpleDateFormat 来完成这个转换。
java.util.Date类
用于表示日期和时间,要获取当前时间,可以使用下面的代码:
【例】
// SimpleDateTest.java
 
import java.util.Date;
 
public class SimpleDateTest {
 public static void main(String[] args) {
      // 定义时间对象  
          Date d = new Date();
      // 按照默认格式输出时间
      System.out.println(d.toString());  
 }
}
下面是输出的结果:
Mon Dec 11 05:32:13 GMT 2006
如果想按照特定的格式进行输出,可以按照下面的方法完成,但是现在的版本中建议不要使用。
【例】
// SimpleDate2Test.java
 
import java.util.Date;
 
public class SimpleDate2Test {
 public static void main(String[] args) {
      // 定义时间对象  
          Date d = new Date();
      // 获取年
          int year = d.getYear()+1900;
      // 获取月
          int month = d.getMonth()+1;
      // 获取日
          int date = d.getDate();
      // 获取时
          int hour = d.getHours();
      // 获取分
          int minute = d.getMinutes();
      // 获取秒
          int second = d.getSeconds();
      // 构造输出字符串
          System.out.println(year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second);
 }
}
执行的结果如下:
2006-12-11 5:35:47
如果想根据年月日来确定一个Date 对象,可以先创建一个对象,然后使用setter 方法来完成,例如:setYear(int) 、setMonth(int) 等,当然这些方法也是建议不使用。如果想对时间进行比较灵活的处理可以使用DateFormat 和SimpleDateFormat 。
如果想按照“2006-12-11 5:35:47 ”的格式进行输出,可以使用下面的代码:
【例】
// FormatDateTest.java
 
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
public class FormatDateTest {
 public static void main(String[] args) {
      // 创建时间对象
      Date d = new Date();
      // 创建时间格式化对象
      DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒");
      // 对时间进行格式化
      String str = df.format(d);
      // 输出格式化后的时间
      System.out.println(str);
 }
}
格式中yyyy 表示年份,可以写2 位,MM 表示月份,可以写1 位,dd 表示日,可以写1 位,hh 表示小时,mm 表示分钟(注意大小写),ss 表示秒。
【注意】DateFormat 和SimpleDateFormat 在java.text 包中,使用的时候需要引入。
要想把一个日期字符串转换成一个时间,例如把“2006-2-6 ”转换成日期,可以使用下面的代码:
【例】
// ParseDateTest.java
 
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
public class ParseDateTest {
 public static void main(String[] args) {
      //定义日期字符串
      String dates = "2006-2-6";
      //定义日期字符串的格式
      DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
      //声明日期对象
      Date d2;
      try {
          //把日期字符串转换成日期
          d2 = df2.parse(dates);
          System.out.println(df2.format(d2));
      }
      catch (Exception ex) {
      }
 }
}
【注意】在转换的时候需要进行异常处理,因为在转换的时候可能会产生异常。
java.util.Calendar类
Calendar 中提供了很多对时间中年、月、日、时、分、秒以及星期进行操作的方法,如果想对时间进行比较详细的操作可以使用Calendar 。
该类也是抽象类,使用的时候需要使用getInstance 获取实例然后再操作,并且该方法可以获取与特定时区相对应的实例,如果不指定参数,获取的就是默认的时间。下面的代码用于获取当前的时间:
    Calendar c1 = Calendar.getInstance();
要想获取时间中具体的年月日时分秒或者其他信息,通过get 方法完成,方法的参数用来指定获取什么信息,例如要获取年月日可以通过下面的代码完成:
    year = c1.get(Calendar.YEAR);
    month = c1.get(Calendar.MONTH)+1;
    date = c1.get(Calendar.DATE);
要对时间中的某一项修改,使用set 方法,方法的定义如下:
public void set(int field,int value)
第一个参数指定修改的项,第二个参数表示修改后的值,例如把年修改成2003 年:
    c1.set(Calendar.YEAR,2003);
如果要同时修改年月日,可以使用下面的方法:
public void set(int year,int month,int date)
参数分别表示时分秒,下面是同时修改年月日的例子:
    c1.set(2003,5,5);
下面是同时修改年月日时分秒的例子
    // 修改年月日时分
    c1.set(2003,5,5,10,30);
    // 修改年月日时分秒
    c1.set(2003,5,5,10,30,20);
Date 对象和Calendar 对象之间可以相互转换,下面是相应的例子:
    // 把Calendar 对象转换成Date 对象
    d2 = c1.getTime();
    // 把日期类型转换成Calendar 类型
    c1.setTime(d2);
其他方法的用法可以参考JDK 的帮助文档。
 
下一讲:第十七讲 基本的输入和输出
 
    李绪成 优快云 Blog : http://blog.youkuaiyun.com/javaeeteacher
第十六届蓝桥杯模拟赛 Java组 即找到 1 a[p[3]] > ... > a[p[x]] < a[p[x+1]] < ... < a[p[k]]。对于一个给点的整数 k ,小蓝想找到相邻间隔为 1 的 k 个数 a[p], a[p+2], a[p+4], ..., a[p+2k-2],使得他们的和最大。对于 30% 的评测用例,1 阅读详情

相关推荐

Java语言程序设计案例教程

Java语言程序设计案例教程 Java的历史与语言结构 第2章 Java编程入门

第九章第三题(使用Date类)(Using the date class)

第九章第三题(使用Date类)(Using the date class) *9.3(使用Date类)编写程序创建一个 Date 对象,设置它的流逝时间分别为 10000、100000、1000000、10000000、100000000、1000000000、10000000000、100000000000 ,然后使用 toString() 方法分别显示上述日期。 *9.3(Using the date class)Write a program to create a date object, set

jxh1025_的博客 3115

【scratch音乐课】天空之城:音符与节拍、消息与链表

scratch是一个非常小巧的青少年编程工具,自带程序编写语句,积木式语句非常直观、易用,可创作数学、科学、音乐、绘画等方面作品。本文用scratch“演奏”一首大家非常熟悉的《天空之城》,并向大家介绍一些基本乐理知识,以及scratch中消息、链表的使用。

★·°立芯;︶︵︶ 1万+

9.3(使用Date类) 编写程序创建一个Date对象,设置它的流逝时间

编写程序创建一个Date对象,设置它的流逝时间分别为10000、100000、10000000、100000000、1000000000然后使用tostring的方法分别显示日期和时间。

MDeleter的博客 2786

Vue+ECharts-GL 3D地图实战:5层叠加打造炫酷中国地图(附完整代码)

本文详细介绍了如何利用Vue和ECharts-GL构建具有强烈立体感的3D中国地图。通过5层图层的巧妙叠加与样式调校,实现了从背景阴影到交互高光的完整视觉层次,并整合了动态飞线与散点标记。文章提供了完整的代码实现、核心配置解析以及性能优化与视觉调优的实战技巧,帮助开发者快速打造专业级的交互式地图可视化应用。

d6e7f8g9h的博客 652

Shell编程规范及变量

文章目录一.Shell脚本1.1Shell概述1.2Shell脚本 一.Shell脚本 1.1Shell概述 Shell是Linux系统中开机自动加载的一个特殊程序,它将用户输入的指令,转换成Linux内核可以识别的语言,从而让内核执行调用硬件。 Bash是Linux系统中默认使用shell的程序,它位于/bin/bash。 1.2Shell脚本 将需要执行的命令保存到一个文件中,按照顺序执行,它不需要编译,它是解释型的 ...

夏颜的博客 3677

Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3

Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3

m0_64039166的博客 1533

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了基于YOLOv11的YOLOFuse多模态融合技术,重点探讨了RGB与红外线(IR)协同检测的实现原理与实战应用。文章详细介绍了双流架构与数据级、特征级、决策级三种融合策略,并通过实战案例展示了其在低光照、复杂环境下显著提升检测精度与鲁棒性的优势,为全天候安防、自动驾驶等场景提供了有效的技术解决方案。

weixin_29041195的博客 653

Date和Calendar

在计算机中,应该如何表示日期和时间呢? 我们经常看到的日期和时间表示方式如下: 2019-11-20 0:15:00 GMT+00:00 2019年11月20日8:15:00 11/19/2019 19:15:00 America/New_York 如果直接以字符串的形式存储,那么不同的格式,不同的语言会让表示方式非常繁琐。 在理解日期和时间的表示方式之前,我们先要理解数据的存储和展示。 当我们定义一个整型变量并赋值时: int n = 123400; 编译器会把上述字符串(程序源码就是一个字符串)编

weixin_46722612的博客 636

【教程】BM1684X-32边缘计算盒子 网络配置教程

BM1684X边缘计算盒子网络配置教程

ShiMetaPi的博客 715

飞牛fnNAS搭建个人小账本

本文介绍了如何在飞牛NAS上部署ezBookkeeping个人记账应用。该开源工具支持多平台使用,具备双因素认证、多级分类等功能。文章详细讲解了Docker激活、镜像下载、容器部署等步骤,并展示了账户管理、交易记录等基础操作。同时指导用户通过ZeroTier实现远程访问,方便随时随地使用个人记账系统。该方案既保障了数据隐私,又提供了专业记账功能,适合对财务隐私敏感的用户。

dgnankai的专栏 783

Java学习概论第十六节

五、新时间日期API LocalDate、LocalTime、LocalDateTime: 方法 描述 now() / * now(ZoneId zone) 静态方法,根据当前时间创建对象/指定时区的对象 of() 静态方法,根据指定日期/时间创建对象 getDayOfMonth()/getDayOfYear() 获得月份天数(1-31) /获得年份天数(1-366) getDayOfWeek() 获得星期几(返回一个 DayOfWeek 枚举值) getMonth() 获得月份, 返回一个 Month

L_hhy的博客 282

SAP-ABAP:SAP中的用户确认对话框:深入理解与实践POPUP_TO_CONFIRM

本文深入介绍了SAP中的用户确认对话框函数POPUP_TO_CONFIRM,包括其核心参数配置、返回值处理、应用场景和最佳实践。该函数是SAP二次开发中重要的交互工具,用于关键操作前获取用户确认,防止误操作。文章详细解析了参数设置技巧,强调必须全面处理所有可能的返回值,并提供了删除数据、批量操作等典型应用场景的代码示例。同时对比了其他类似弹出函数,帮助开发者选择合适工具。正确使用该函数可提升系统安全性、改善用户体验并符合SAP设计规范。

baidu_35680696的博客 970

第十六讲 StringBuffer和StringBuilder区别、Java国际化、Math Random和日期工具类的使用

导读: StringBuilder和StringBuffer的区别:主要判断两者的线程安全技术问题。 Java国际化:其实就是本地文字信息化代替技术。 Math类:数学类的业务处理常用方法 Random类:随机数生成类的常用方式 第一、StringBuffer和StringBuilder的区别 先看一下字符串类的关联关系—— 第二、从构造函数到具体的字符串拼接操作

宁叔 410

基于ESP32的智能车载环境监测系统开发

随着智能汽车技术的飞速发展,车载系统的功能越来越多样化,除了基本的行驶控制和娱乐功能外,车载环境监测系统也成为了一项重要的功能。通过实时监测车内环境数据,例如温度、湿度、空气质量、气体浓度等,智能车载环境监测系统能够提供更为舒适和安全的驾驶体验,同时增强车辆的智能化程度,提升用户的整体体验。ESP32作为一种集成了Wi-Fi和蓝牙功能的高效能低功耗嵌入式开发平台,成为了设计车载环境监测系统的理想选择。它不仅具备丰富的接口和处理能力,还能够实现与云平台、手机应用等系统的远程数据传输和控制。

2201_76125393的博客 715

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java学习第十六天 包装类

在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入。为了解决这样的问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装成引用数据类型的对象。 除了Integer和Character类,其他包装类的名称和基本数据类型的名称一致,只是类名的第一个字母需要大写。 包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念。其中,装箱是指将基本数...

图南的博客 323

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

实践1:编写日历(日期类的用法)——可以当成面试题

李绪成的一亩三分地 1912

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

第十六天 Java的基础学习(十)

若算法的T(n)=O(logn),则称其具有对数时间。Integer的valueOf()方法中,自动创建缓存池,缓存池中自动创建-128~127之间的Integer类型的数字,执行了value0f()方法时,在-128~127之间的数字,直接从缓存池中返回存在的地址,不再该范围内,每次都会new。●可以存在多个catch,多个catch可以捕获不同的异常,捕获到对应的异常后,后续的catch不再执行RuntimeExceptionException写到最后,根据捕获到不同的异常完成不同的处理。

aLntano的博客 126

Java17 入门基础知识(十)

原文:Beginning Java 17 Fundamentals 协议:CC BY-NC-SA 4.0 十七、格式化数据 在本章中,您将学习: 如何格式化和解析日期和数字 如何使用printf样式的格式 如何创建使用自定义格式化程序的类 Java 提供了一组丰富的 API 来格式化数据。数据可能包括简单的值(如数字)或对象(如字符串、日期和其他类型的对象)。本章介绍了 Java 中不同类型值的格式化选项。本章中的所有示例程序都是清单 17-1 中声明的jdojo.format模块的成员

龙哥盟 2147

如何在短时间内高效的学习Java基础?

上述课程表是以每天学习6最少小时为基础设定的学习内容,如果各位小伙伴可以根据自己每天能学习、吸收的知识,进行排序。

黑马程序员官方博客 237

第十六届蓝桥杯真题解析(JavaB组)和参赛经验(上)

小蓝一觉醒来,发现自己被困在一座高耸的塔中。这座塔共有 2025 层,每一层都刻有一个数字的立方值,从底层的 1^3,2^3,3^3,… 一直到顶层的 2025^3,层层叠叠,直入云霄。塔顶有一扇门,门旁刻着一行字:“若想离开此塔,需找出这些立方数中个位数字为 3 的数的个数。小蓝非常着急,因为他需要尽快离开这座塔,去参加即将到来的蓝桥杯比赛。时间紧迫,请你帮助他解答这个问题。解题思路:标准的签到题,需要从1^3到2025^3的立方中找出的数有多少个。

Gyx456df的博客 2000

第十六届蓝桥杯JAVA B组解题思路与经验分享

时间分配策略简单题目要快速拿下但不忘检查难题可以先写暴力解法保证基础分注意每道题的数据范围限制代码规范建议统一的IO处理类提升编码效率合理使用静态代码块初始化复杂算法添加必要注释调试技巧使用println进行变量追踪注意flush输出缓冲区局部测试用例验证。

ThunderstormDragon65的博客 325

2025年第十六届蓝桥杯省赛JavaB组真题回顾

2025年第十六届蓝桥杯省赛(软件类)Java B组的比赛已经于(多数省份4月12-13日)举行完毕,现在是赛后回顾阶段。下面根据2025年多位选手的赛后分享(优快云、腾讯云开发者社区、Dotcpp、博客园等平台常见版本)整理出的。

m0_57545130的博客 1401

Java开发笔记(序)章节目录

现将本博客的Java学习文章整理成以下笔记目录,方便查阅。 第一章 初识Java Java开发笔记(一)第一个Java程序 Java开发笔记(二)Java工程的帝国区划 Java开发笔记(三)Java帝国的特种官吏 Java开发笔记(四)Java帝国的度量衡 第二章 数值变量 Java开发笔记(五)数值变量的类型 Java开发笔记(六)特殊数字的表达 Java开发笔记(七)强制类型转换的风险 第三......

pinlantu的博客 1万+

【蓝桥杯】第十六届蓝桥杯 JAVA B组记录

【蓝桥杯】第十六届 JAVA B组蓝桥杯

xiaoxualg的博客 4821

第十六章 课程总复习

一、课程回顾 整本书分为二部分,第一部是程序的基础,第二部Java类基础1 第一章~第十章Java语法选择结构(重点)循环结构(重点)(难点)数组2 第十一章~第十五章类和对象(难点)类的方法(重点)字符串类二、知识点梳理1 程序逻辑2 数组3 初识Java三、总结多重if和switch选择结构都可以用于多分支的情况,但使用场合不同while循环是先判断再执行,do-while循环...

angshou7239的博客 1009
上一篇: Java Web基础:第九讲 Web应用配置
下一篇: 动笔帮助我们记忆
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值