当前位置: 首页 > news >正文

Java基础-Java中的Calendar和Date类

Java语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。
 
创建一个日期对象
 
         让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数。这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间。
  
import  java.util.Date;
 
public  class  DateExample1 {
 
public  static  void  main(String[] args) {
 
// Get the system date/time
 
Date date = new  Date();
 
System.out.println(date.getTime());
 
} }
 
  
         在星期六, 2001 9 29 日,下午大约是 6 : 50 的样子,上面的例子在系统输出设备上显示的结果是 1001803809710 。值得注意的是我们使用了Date 构造函数创建一个日期对象,这个构造函数没有接受任何参数,而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。现在我们已经知道了如何获取从 1970 1 1 日开始经历的毫秒数了。我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了。
 
日期数据的定制格式
 
         假如我们希望定制日期数据的格式,比方星期六- 9 月- 29 日- 2001 年. 下面的例子展示了如何完成这个工作:
 
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" );
 
Date date = new  Date();
 
System.out.println(bartDateFormat.format(date));
 
} }
 
  
         只要通过向SimpleDateFormat 的构造函数传递格式字符串 "EEE-MMMM-dd-yyyy" ,我们就能够指明自己想要的格式。格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。EEEE是星期,MMMM是月,dd是日,yyyy是年。字符的个数决定了日期是如何格式化的。传递 "EE-MM-dd-yy" 会显示 Sat- 09 - 29 - 01
 
将文本数据解析成日期对象
 
         假设我们有一个文本字符串包含了一个格式化了的日期对象,我们希望解析这个字符串并从文本日期数据创建一个日期对象。我们将再次以格式化字符串 "MM-dd-yyyy"  调用SimpleDateFormat类。但是这一次,我们使用格式化解析而不是生成一个文本日期数据。我们的例子,显示在下面,将解析文本字符串 "9-29-2001" 并创建一个值为 001736000000  的日期对象。
 
  
import  java.text.SimpleDateFormat;
 
import  java.util.Date;
 
public  class  DateExample3 {
 
public  static  void  main(String[] args) {
 
// Create a date formatter that can parse dates of
 
// the form MM-dd-yyyy.
 
SimpleDateFormat bartDateFormat = new  SimpleDateFormat( "MM-dd-yyyy" );
 
// Create a string containing a text date to be parsed.
 
String dateStringToParse = "9-29-2001" ;
 
try  {
 
// Parse the text version of the date.
 
// We have to perform the parse method in a
 
// try-catch construct in case dateStringToParse
 
// does not contain a date in the format we are expecting.
 
Date date = bartDateFormat.parse(dateStringToParse);
 
// Now send the parsed date as a long value
 
// to the system output.
 
System.out.println(date.getTime());
 
}
 
catch  (Exception ex) {
 
System.out.println(ex.getMessage());
 
}
 
} }

转载于:https://www.cnblogs.com/toge/p/6114662.html

相关文章:

  • [转载]敏捷开发之Scrum扫盲篇
  • linux中权限的修改
  • Spring, MyBatis 多数据源的配置和管理
  • Vue 新手学习实战宝典
  • 初探插头dp
  • OSChina 周六乱弹 ——你们怎么懂我的少年心
  • Oracle内建函数(greatest, least, to_single_byte)
  • Selenium2+python自动化11-定位一组元素find_elements
  • Chapter 2 Open Book——24
  • 如何造一个移动端的联动选择器(二)
  • JFinal输出流的Render
  • 剑指offer五:
  • Android开发环境
  • 移动端解决方案学习记录
  • 条件编译使用实例
  • [译]CSS 居中(Center)方法大合集
  • 345-反转字符串中的元音字母
  • CSS 三角实现
  • es6
  • JavaScript学习总结——原型
  • JS+CSS实现数字滚动
  • Laravel核心解读--Facades
  • Nacos系列:Nacos的Java SDK使用
  • Objective-C 中关联引用的概念
  • Promise面试题2实现异步串行执行
  • Puppeteer:浏览器控制器
  • Python3爬取英雄联盟英雄皮肤大图
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 如何用vue打造一个移动端音乐播放器
  • 使用docker-compose进行多节点部署
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #图像处理
  • (2022 CVPR) Unbiased Teacher v2
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (四)Linux Shell编程——输入输出重定向
  • (小白学Java)Java简介和基本配置
  • .Net Core与存储过程(一)
  • .NET MVC之AOP
  • .NET导入Excel数据
  • .NET企业级应用架构设计系列之开场白
  • /bin/rm: 参数列表过长"的解决办法
  • /etc/fstab和/etc/mtab的区别
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [AutoSar NVM] 存储架构
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C#] 我的log4net使用手册
  • [C#]C#学习笔记-CIL和动态程序集
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [C++] 统计程序耗时
  • [CTF]php is_numeric绕过