Date、Calendar和GregorianCalendar的使用
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。
第一个构造函数使用当前日期和时间来初始化对象。
Date
public static void methodDate() {
// currentTimeMillis :返回以毫秒为单位的当前时间。 这个应该是system中的方法。
Date date1=new Date();//默认当前时间
Date date2=new Date(System.currentTimeMillis()-1000000L);
System.out.println(date1);
System.out.println(date2);
//日期比较的方法
boolean b1=date1.before(date2);//date1是否在date2之前
System.out.println(b1);
boolean b2=date1.after(date2);//date1是否在date2之后
System.out.println(b2);
boolean b3=date1.equals(date2);//date1是否等于date2
System.out.println(b3);
int b4=date1.compareTo(date2);//date1和date2进行比较
System.out.println(b4);
if (b4==0) {
System.out.println("date1==date2");
} else if(b4==1){
System.out.println("date1>date2");
}
else {
System.out.println("date1<date2");
}
}
Date转字符串格式(日期进行格式化)
public static void methodSimpleDateFormat() {
Date date=new Date();//当前时间
//进行格式化
String pattern="yyyy-MM-dd hh:mm:ss.ms";//设置格式
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
String myDate=simpleDateFormat.format(date);
System.out.println(myDate);
//一句话:得到当前时间的字符串格式
//String nowStr=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.ms").format(new Date());
}
字符串转Date格式(字符串进行解析),自定义时间加try或throws
public static void methodStringToDate() {
String string="2010/1/5 10:15:20";
String pattern="yyyy/MM/dd hh:mm:ss";//设置对应格式
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
//把字符串进行解析
try {
Date date=simpleDateFormat.parse(string);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
public static void methodCalendar() {
//创建日历类对象(默认时间是当前时间)
Calendar calendar=Calendar.getInstance();//public static Calendar getInstance()
//通过getTime()方法得到Date对象
Date date=calendar.getTime();
System.out.println(date);
//如何获取日历中某一个部分的数据?
//比如年、月(从0开始算)、日等等
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;
int day1=calendar.get(Calendar.DATE);
int day2=calendar.get(Calendar.DAY_OF_MONTH);
int hour=calendar.get(Calendar.HOUR);//小时
int minute=calendar.get(Calendar.MINUTE);//分钟
int second=calendar.get(Calendar.SECOND);//秒数
int msecond=calendar.get(Calendar.MILLISECOND);//毫秒
//星期
//int week1=calendar.get(Calendar.WEDNESDAY);
//int week2=calendar.get(Calendar.WEEK_OF_YEAR);
//int week3=calendar.get(Calendar.WEEK_OF_MONTH);
//星期:从星期天开始到星期六结束,分别用1到7表示
int weekDay=calendar.get(Calendar.DAY_OF_WEEK);
if (weekDay==Calendar.MONDAY) {
//判断是否是星期一
}
String[] weeks={"日","一","二","三","四","五","六"};
System.out.println("年份:"+year);
System.out.println("月份:"+month);
System.out.println("日期:"+day1+"或"+day2);
System.out.println("星期"+weeks[weekDay-1]);
}
//Calendar 的自定义时间,自定义时间加try或throws
public static void methodCalendar2() {
Calendar calendar=Calendar.getInstance();
try {
//设置别的时间
String time="2010-1-5";
SimpleDateFormat sdt=new SimpleDateFormat("yyyy-MM-dd");
Date date =sdt.parse(time);
calendar.setTime(date);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(calendar.getTime());//获得年份
}
public static void methodCalendar3() {
Calendar calendar=Calendar.getInstance();
//日期的加减操作:add或roll方法
calendar.add(Calendar.YEAR, 1);//年份+1
calendar.add(Calendar.MONTH, 1);//月份+1
calendar.add(Calendar.DATE, -1);//日期-1
calendar.roll(Calendar.YEAR, -10);
System.out.println(calendar.getTime());
}
一般情况下,Date所提供的功能非常的有限,所以比较常用的是GregorianCalendar.
public static void testGregorianCalendar() {
//GregorianCalendar标准日历类
//创建对象
//1 默认当前时间
//GregorianCalendar gregorianCalendar=new GregorianCalendar();
//2 按照指定年月日
//GregorianCalendar gregorianCalendar=new GregorianCalendar(1990, 10, 12);
//3 按照指定年月日时分秒
GregorianCalendar gregorianCalendar=new GregorianCalendar(1990, 10, 12,10,20,30);
System.out.println(gregorianCalendar.getTime());
//获取年份、月份等
int year=gregorianCalendar.get(Calendar.YEAR);
int month=gregorianCalendar.get(Calendar.MONTH)+1;
//...
}
//
public static void testCalendar() {
//父类Calendar对象的创建
//前两种都是一样的,表示当前时间
//1
//Calendar calendar=Calendar.getInstance();
//2
//Calendar calendar=new GregorianCalendar();
//
Calendar calendar=new GregorianCalendar(2000,1,1);
}
public static void testGregorianCalendar2(){
//创建子类对象
GregorianCalendar gregorianCalendar=new GregorianCalendar();
//今天是星期几?
//DateFormatSymbols封装了关于星期、月份、时区等信息
//获取所有星期,第一个元素是空元素
String[] weeks=new DateFormatSymbols().getWeekdays();
for (String string : weeks) {
System.out.println(string);
}
int week=gregorianCalendar.get(Calendar.DAY_OF_WEEK);//
System.out.println("今天是:"+weeks[week]);
//
//String[] months=new DateFormatSymbols().getMonths();
//for (String string : months) {
//System.out.println(string);
//}
}
//日历对象格式化方法一,
public static void testGregorianCalendar3(){
GregorianCalendar gregorianCalendar=new GregorianCalendar();
Date date=gregorianCalendar.getTime();
String pattern="yyyy年MM月dd日 hh:mm:ss";
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
String strDate=sdf.format(date);
System.out.println(strDate);
}
//日历对象格式化方法二
public static void testGregorianCalendar4() {
GregorianCalendar gregorianCalendar=new GregorianCalendar();
Date date=gregorianCalendar.getTime();
//DateFormat格式化类
//DateFormat df=DateFormat.getInstance();
//格式化
//String strDate=df.format(date);
//System.out.println("默认时间格式:"+strDate);
//DateFormat df=DateFormat.getDateInstance();
//DateFormat df=DateFormat.getTimeInstance();
//String strDate=df.format(date);
//System.out.println(strDate);
DateFormat df=DateFormat.getDateTimeInstance();
String strDate=df.format(date);
System.out.println(strDate);
}
//通过获取不同地区不同格式的时间
public static void testGregorianCalendar5() {
GregorianCalendar gregorianCalendar=new GregorianCalendar();
Date date=gregorianCalendar.getTime();
//地区(比如美国、中国)
Locale[] locales={Locale.US,Locale.CHINA};
//日期格式
int[] styles={DateFormat.FULL,DateFormat.LONG,DateFormat.SHORT,DateFormat.MEDIUM};
String[] strStyles={"完整日期","长日期","短日期","普通日期"};
for (Locale locale : locales) {
System.out.println(locale.getDisplayCountry()+"日期格式如下:");//
for (int i = 0; i < styles.length; i++) {
DateFormat dateFormat1=DateFormat.getDateInstance(styles[i], locale);//获得日期
DateFormat dateFormat2=DateFormat.getTimeInstance(styles[i], locale);//获得时间
System.out.print("\t"+strStyles[i]+"格式:");
System.out.println(dateFormat1.format(date)+" "+dateFormat2.format(date));
}
}
美国日期格式如下:
完整日期格式:Wednesday, January 17, 2018 3:58:55 PM CST
长日期格式:January 17, 2018 3:58:55 PM CST
短日期格式:1/17/18 3:58 PM
普通日期格式:Jan 17, 2018 3:58:55 PM
中国日期格式如下:
完整日期格式:2018年1月17日 星期三 下午03时58分55秒 CST
长日期格式:2018年1月17日 下午03时58分55秒
短日期格式:18-1-17 下午3:58
普通日期格式:2018-1-17 15:58:55
Date、Calendar和GregorianCalendar的使用的更多相关文章
- Java Date Calendar DateFormat Details
From https://www.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html Date and Time - Creat ...
- java-String Date Calendar之间的转换
1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...
- String Date Calendar之间的转换
1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...
- 【转】String Date Calendar之间的转换
1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...
- 【Java】【9】String Date Calendar之间的转换
前言: 1, Calendar 转化 String 2, Calendar 转化 Date 3,Date 转化 String 4,Date 转化 Calendar 5,String 转化 Calend ...
- [java]转:String Date Calendar之间的转换
String Date Calendar之间的转换 String Date Calendar 1.Calendar 转化 String Calendar calendat = Calendar.ge ...
- 一篇文章吃透iOS、JS的时间日期(Date, Calendar, Locale, TimeZone)
iOS 时间相关类 NSDate - 表示一个绝对的时间点. NSCalendar - 代表一个特定的日历,例如公历或者希伯来日历.它提供了一系列基于日期的计算,并且可以让你在"NSDate ...
- Java的三种日期工具 Date Calendar SimpleDateFormat
三种日期工具 配合下面的案例可以更加深度的了解 Date 需要导包java.util.Date Date d = new Date(); //两种都是获取到现在时间的时间戳 long t1 = d.g ...
- 基础笔记4(包装类,时间date. calendar
1.包装类 基本类型和对象. 编译器会对基本类型和包装类进行自动拆箱,装箱处理 Interger i=5; int i=new Interger(4); 一个缓存问题:以便提高效率 integer ...
随机推荐
- web中间件常见漏洞总结笔记
之前看吐司别人发的个文档,简单记的笔记 ----- IIS 解析漏洞 IIS 6 *.asp;.jpg会被当作asp解析 *.asp/ ...
- [考试反思]1105csp-s模拟测试101: 临别
先不改题,这次主要不在T3上. 这次有必要粘文件得分了. 临考前总解锁新锅我也不知道这是什么个事啊... T1宏定义写挂.因为原来在OJ上没事所以一直没注意.在Lemon评测下直接全部RE. GG在主 ...
- AutoCad 二次开发 .net 之创建Table
我使用了COM对象来在cad2018中创建table表格,需要的ObjectArx开发包可以在官网上下载,并且需要使用.netframework4.6的库才行. 项目里除了引用常规的Cad开发dll, ...
- vue自定义长按指令
1.前言 在word中,当我们需要删除一大段文本的时候,我们按一下键盘上的退格键,就会删除一个字,当我们长按住退格键时,就会连续不停的删除,这就是键盘按键的长按功能.那么我们也想在网页中让一个按钮也具 ...
- 「NOIP模拟赛」数位和乘积(dp,高精)
统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又 ...
- ElasticSearch(三):通分词器(Analyzer)进行分词(Analysis)
ElasticSearch(三):通过分词器(Analyzer)进行分词(Analysis) 学习课程链接<Elasticsearch核心技术与实战> Analysis与Analyzer ...
- 使用ASP.NET Core 3.x 构建 RESTful API - 3.1 资源命名
之前讲了RESTful API的统一资源接口这个约束,里面提到了资源是通过URI来进行识别的,每个资源都有自己的URI.URI里还涉及到资源的名称,而针对资源的名称却没有一个标准来进行规范,但是业界还 ...
- Zabbix-(四)邮件、钉钉告警通知
Zabbix-(四)邮件.钉钉告警通知 一.前言 在之前的文章里,通过Zabbix对主机的磁盘.CPU以及内存进行了监控,并在首页Dashboard里创建了监控图形,但是只有当我们登录到Zabbix后 ...
- Centos 7环境下修改主机名
步骤如下: 一.首先把虚拟机打开,用root账户进行登录后打开终端 二.我们看到我们虚拟机名称是默认的主机名. 三.用vi编辑器编辑etc目录下的hostname文件,输入“vi /etc/hostn ...
- Zabbix-(六) JMX监控
Zabbix-(六) JMX监控 一.前言 Zabbix提供了JMX监控,它通过JMX API获取JVM信息,从而提供监控数据.本文讲述使用JMX监控Tomcat的JVM信息. 准备 Zabbix S ...