日历对象导哪个包_java.util的的Date类和Calendar类

Date

java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时间,精确到毫秒。

Java中有两个Date类,还有一个是java.sql.Date,这个类一般不用,即使在数据库中也不推荐使用。

写代码时注意导入的包一定是java.util包。

import java.util.Date;

public class TestDate {

public static void main(String[] args) {

Date date = new Date(); // 获得当前的系统日期和时间

System.out.println("今天的日期是:" + date);

Date dateL = new Date(0L);// 带参版:参数是毫秒值

System.out.println("Date(long date)的日期是:" + dateL);

long time = date.getTime(); // 获得毫秒数

System.out.println("自1970年1月1日起以毫秒为单位的时间(GMT):" + time);

// Deprecated,不赞成使用。建议使用Calendar代替。

Date dateYMD = new Date(1999, 01, 02);

Date dateYMDHMS = new Date(1999, 01, 02, 10, 10, 10);

}

}

日期格式化

simpleDateFormat.format(_date):把Date类型转为格式化的字符串

simpleDateFormat.parse(“1949-10-01”):把格式化的字符串转为Date类型

import java.text.DateFormat;// 抽象类

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

// DateFormat:日期↔文本

public class TestDate格式化 {

public static void main(String[] args) {

Date _date = new Date(); // 获得当前的系统日期和时间

// 创建DateFormat对象

DateFormat _dateFormat = new SimpleDateFormat("yyyy-MM-dd");

// format(Date date):按照指定模式,把日期转为字符串

String _s = _dateFormat.format(_date);

System.out.println("SimpleDateFormat:" + _s);

// -------------------------------

// parse方法:按照指定格式解析

try {

Date parse = _dateFormat.parse("1949-10-01");

System.out.println(parse);

} catch (ParseException e) {

e.printStackTrace();

}

}

}

Date类里很多方法被宣布“过时了”,过时了不是不能用,只是不赞成使用。

比如上面第一段代码中的Date的带年月日的构造方法。

@Deprecated

public Date(int year, int month, int date) {

this(year, month, date, 0, 0, 0);

}

如果要通过年月日构造一个日期类型的对象,推荐使用Calendar类。

Calendar

java.util.Calendar类(日历)是抽象类,无法实例化。

public abstract class Calendar implements Serializable, Cloneable, Comparable {

……

}

要得到对象,只能通过调用getInstance方法来获得\

Calendar cal = Calendar.getInstance();

一般得到的是GregorianCalendar的实例对象,可以通过toString()输出结果看到。

方法

解释

Calendar getInstance()

获取Calendar对象

Date getTime()

Calendar对象转为Date对象

int get(int fields)

获取fields指定部分的值

void set(int fields, int value)

将value中指定的值设置到fields指定的部分

void add(int fields, int amount)

将amount值添加到fields指定的时间或日期部分

Object clone()

返回调用对象的副本

void clear()

清除当前对象中所有的时间组成部分

boolean after(Object obj)

如果调用对象时间在obj之后,返回true

boolean before(Object obj)

如果调用对象时间在obj之前,返回true

boolean equals(Object obj)

判断调用对象与obj是否相等import java.util.Calendar;

public class TestCalendar {

public static void main(String[] args) {

Calendar cal = Calendar.getInstance();

// int _year = 2019, _month = 1, _day = 1;

// cal.set(_year, _month - 1, _day);

System.out.println(cal.get(Calendar.YEAR) + ":年");

System.out.println(cal.get(Calendar.MONTH) + ":月,从0开始算");

System.out.println(cal.get(Calendar.DATE) + ":当天 1-31");

System.out.println(cal.get(Calendar.DAY_OF_MONTH) + ":当天 1-31");

System.out.println(cal.get(Calendar.DAY_OF_WEEK) + ":星期,周日算第1天");

System.out.println(cal.get(Calendar.WEEK_OF_MONTH) + ":月的第n周");

System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + ":年的第n周");

System.out.println(cal.get(Calendar.DAY_OF_YEAR) + ":一年里的第n天");

System.out.println(cal.get(Calendar.HOUR) + ":12小时制");

System.out.println(cal.get(Calendar.HOUR_OF_DAY) + ":24小时制");

System.out.println(cal.get(Calendar.MINUTE) + ":分");

System.out.println(cal.get(Calendar.SECOND) + ":秒");

System.out.println(cal.get(Calendar.MILLISECOND) + ":毫秒");

// 闰年2月29的一年之后

cal.set(2000, 2 - 1, 29);

// 把日历转为日期

System.out.println(cal.getTime());

cal.add(Calendar.YEAR, 1);

System.out.println(cal.getTime());

}

}

*java8新增的time包

java.time,用于日期、时间处理

|–Clock类:获取指定时区的日期时间

|–Duration类:一段持续的时间

|–Instant类:具体时刻,精确到纳秒

|–LocalDate类:不带时区的时间

……

import java.time.*;

public class TestDateJava8 {

public static void main(String[] args) {

testClock();

testDuration();

testInstant();

testLocalDate();

}

static void testClock() {

System.out.println("---Clock类:获取指定时区的日期时间---");

Clock clock = Clock.systemUTC();// 世界统一时间

System.out.println("当前时刻为:" + clock.instant());

// millis()获取clock对应的毫秒数,与System.currentTimeMillis()输出相同

System.out.println(clock.millis() + ":clock.millis()");

System.out.println(System.currentTimeMillis() + ":System.currentTimeMillis()");

}

static void testDuration() {

System.out.println("---Duration类:一段持续的时间---");

int s = 60 * 59;// 60秒*59=59分钟

Duration d = Duration.ofSeconds(s);

System.out.println(s + "秒相当于" + d.toMinutes() + "分");

System.out.println(s + "秒相当于" + d.toHours() + "小时");

System.out.println(s + "秒相当于" + d.toDays() + "天");

}

static void testInstant() {

System.out.println("---Instant类:具体时刻,精确到纳秒---");

Instant instant = Instant.now();// 获取当前时间

System.out.println(instant + ":Instant.now() ");

Instant instant2 = instant.plusSeconds(6000);

System.out.println(instant2 + ":加时间plusSeconds()");

}

static void testLocalDate() {

System.out.println("---LocalDate类:不带时区的时间---");

LocalDate localDate = LocalDate.now();

System.out.println(localDate + ":LocalDate.now()");

// 获得某年的第几天

int _某一年 = 2017, _第几天 = 100;

localDate = LocalDate.ofYearDay(_某一年, _第几天);

System.out.println(localDate + ":" + _某一年 + "年,第" + _第几天 + "天LocalDate.ofYearDay()");

}

}

标签:System,util,println,cal,Date,Calendar,out

来源: https://blog.csdn.net/talkwah/article/details/94328424

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debian Linux 的 vim 如何使用系统剪贴板

以 ubuntu 为例,ubuntu 默认是没有 vim 的,需要自己安装一下: 更新源: apt-get update安装 vim : apt-get install vim此时,系统不支持剪切板,我们使用命令 vim --version|grep clipboard 查…

Python中replace()函数

replace()函数 功能:类似正则表达式的sub()函数,使用新的字符串替换主串中的内容。 函数需要通过字符串来调用,replace(old, new, max)函数参数依次为: old表示主串中要被替换的字符串。new表示新的字符串。max表示替换次数,默…

lombok和maven_Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回

lombok和maven在上一篇有关Lombok库的文章中 ,我描述了一个库,该库有助于处理Java中的样板代码( 是的,我知道这些问题已经在Kotlin中解决了 ,但这是现实生活,我们不能一味地坐下来,一旦出现较新…

上传文件显示进度条_文件上传带进度条进阶-断点续传

说明 1. 把文件按大小1M分割成N份 2. 每次上传时,告诉后台大文件的md5、当前第几份(从0开始)、总共几份 3. 并行上传,前端同时开启5个请求进行传输增加速度 4. 上传失败或出错后,继续上传下一份,把出错的份…

Unix 下的 vim 如何使用系统剪贴板

在 Unix 环境下," 寄存器需要 xterm-clipboard feature 的 VIM 软件才能使用,具有这个 feature 的 VIM 可以安装 vim-gtk(包含gvim和vim),使用 gvim 可以正常调用 " 寄存器。

python中关键字global的简单理解

python用global关键字来标识函数里或类里的全局变量,下面以例子来看看global关键字的作用。 未使用global关键字 a10 #全局变量 def sum(x):a2 #局部变量xa*xreturn x xsum(3) print("a:",a) #10 输出的是全局变量a10 print("x:",x) #6使用…

apache kafka_2018年机器学习趋势与Apache Kafka生态系统相结合

apache kafka在慕尼黑举行的OOP 2018大会上,我介绍了有关使用Apache Kafka生态系统和诸如TensorFlow,DeepLearning4J或H2O之类的深度学习框架构建可扩展,关键任务微服务的演讲的更新版本。 我想分享更新后的幻灯片,并讨论一些有关…

cookies丢失 同域名_后端设置Cookie前端跨域获取丢失问题(基于springboot实现)

1.跨域问题说明:后端域名为A.abc.com,前端域名为B.abc.com。2.后端设置一个cookie发送给前台,domain应该是setDomain(“abc.com”),而不是setDomain(“B.abc.com”)3.另外,还要实现WebMvcConfigurerr配置加入Cors的跨域…

shell脚本--使用for循环逐行访问txt文件

方法1 export text_pathdata/1.txt for line in $(cat $text_path) doecho $line done方法2 export text_pathdata/1.txt for line in cat $text_path doecho $line done

vertx rest 跨域_Vertx编程风格:您的React式Web Companion REST API解释了

vertx rest 跨域Vertx提供了许多在轻量级环境中进行编程的选项,例如node.js。 但是,对于新用户来说,选择采用哪种方法来创建REST API几乎不会造成混淆。 在vertx中进行编程时,可以采用不同的模型。 下面通过易于理解的图表进行说…

输出节点位移_绝对值信号的编码器有哪些信号输出(一、二)

绝对值信号的编码器有哪些信号输出(一、二)之前介绍过很多次拉线位移传感器输出是有两大类的,数字信号输出和模拟量信号输出,而数字信号输出还分为增量型脉冲信号输出和绝对值信号输出,今天就系统的介绍一下绝对值信号…

vim 中的 quickfix 指令

用 quickfix 可以快速修改编译错误。 运行了 make 命令编译之后,如果有编译错误 Vim 会以列表形式把编译错误列出,并使用 quickfix 工具快速帮你定位出错的行。 指令说明cc显示编译错误的详细信息,这些信息显示在状态行里cn下一个编译错误cp前一个编译…

Python第三方库的安装,升级以及版本查看

方法:通过电脑的cmd命令行来进行python第三方库的安装,升级以及版本查看 安装和升级pip 安装pip方法1 在cmd命令行输入以下命令: python -m ensurepip #当提示不存在pip时使用这行代码进行安装安装pip方法2 在终端输入以下命令&#xf…

混合多云架构_混合多云每个人都应避免的3个陷阱(第1部分)

混合多云架构每天都在肆意宣传云,但每个人都应避免三个陷阱。 从云,混合云到混合多云,您都被告知这是确保业务数字化未来的一种方式。 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作。 让我们开始一段旅程&am…

vim 下的 ex 指令(底行命令模式下)

文章目录 (一)复制(二)文档光标移动(三)删除(四)粘贴(五)保存/退出(六)另存为文件/选取内容另存文件(七)查找/搜索字符(八)搜索指令 vimgrep(九)使用搜索指令 grep(十)文本行移动(十一)匹配模式替换(十二)显示行号(十三)normal 命令(十四)文件信息…

datastax.repo_使用Datastax Java驱动程序与Cassandra进行交互

datastax.repo今天,我这次返回了更多的Cassandra和Java集成,重点是使用Datastax Java驱动程序,而不是我已经写了很多文章的Spring Data Cassandra。 Spring Data实际上使用了Datastax驱动程序来与Cassandra进行交互,但是在它之上还…

beanshell断言_JMeter使用BeanShell断言

BeanShell简介BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如:定时器:BeanShell Timer前置处理器:BeanShell PreProcessor采样器:BeanShell Sampler后置处理器&#x…

Mobaxterm常用的指令(基于linux)

列出所有的环境(3种方法) conda env list conda info --envs conda info -e创建虚拟环境(默认anaconda3/envs路径) conda create -n megumi python3.8.5 #megumi为环境名称,#3.8.5是安装python的版本激活环境(2种方法) source activate 环境名 conda activate 环境名退出环…

junit mockito_使用JUnit 5在Mockito中方便地进行模拟–官方方式

junit mockito从版本2.17.0开始,如果使用了JUnit 5, Mockito提供了官方(内置)支持来管理模拟生命周期。 入门 为了利用集成的优势,需要在JUnit 5的junit-platform-engine旁边添加Mockito的mockito-junit-jupiter依赖项…

正则表达式中的量词(限定符)含义的准确理解

量词准确理解?前面的元素(pattern/子表达式)匹配 0 次或者 1 次;出现 0 次或者 1 次。“次”改成“个”也行*前面的元素匹配大于等于 0 个前面的元素匹配大于等于 1 个{5}前面的元素匹配 5 个{2,6}前面的元素匹配 2 个到 6 个