博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础-Java中的Calendar和Date类
阅读量:6370 次
发布时间:2019-06-23

本文共 2286 字,大约阅读时间需要 7 分钟。

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

你可能感兴趣的文章
C# 属性事件一些设置说明
查看>>
去除UITableViewheader footer黏性
查看>>
windows2003 iis6.0不能显示asp.net选项
查看>>
xen MacOS
查看>>
如何学好C和C++
查看>>
Gitlab通过custom_hooks自动更新服务器代码
查看>>
python 如何判断调用系统命令是否执行成功
查看>>
Lesson10 vSphere 管理特性
查看>>
memcache 扩展和 memcached扩展安装
查看>>
好程序员的查克拉---自信
查看>>
获取设备列表
查看>>
Django使用网上模板做个能展示的博客
查看>>
基于同IP不同端口,同端口不同Ip的虚拟主机 基于FQDN的虚拟主机
查看>>
项目软件集成三方模块,编译中int32和uint32定义冲突解决方法
查看>>
StretchDIBits速度测试(HALFTONE)
查看>>
在.NET Workflo“.NET研究”w 3.5中使用多线程提高工作流性能
查看>>
验证Oracle处理速度
查看>>
自己写一个jquery
查看>>
艾伟:C#中抽象类和接口的区别
查看>>
Flink - NetworkEnvironment
查看>>