Date类

public classDateTest{public static voidmain(String[] args){

Date d1= newDate();//获取当前时间之后100ms的时间

Date d2 = new Date(System.currentTimeMillis() + 10000);

System.out.println(d1);

System.out.println(d2);//比较d1,d2是否相等,相等返回0,大于返回1,小于返回-1.

System.out.println(d1.compareTo(d2));//判断d1在d2之前/之后

System.out.println(d1.before(d2));

System.out.println(d1.after(d2));

}

}

Calendar类

//创建一个默认的Calendar对象

Calendar calenadar =Calendar.getInstance();//从Calendar对象中取出Date对象

Date date =calendar.getTime();//通过Date对象获得对应的Calendar对象

Calendar calendar2 =Calendar.getInstance();

calendar2.setTime(date);

Calendar访问、修改日期时间的方法:

importjava.util.Calendar;//静态导入Calendar类里所有类变量,可以直接使用YEAR、MONTH等

import static java.util.Calendar.*;public classa{public static voidmain(String[] args){

Calendar c=Calendar.getInstance();//取出年、月、日

System.out.println(c.get(YEAR)+" "+c.get(MONTH)+" "+c.get(DATE));//设置年、月、日、小时、分钟、秒

c.set(2003,10,23,12,32,23);//将Calendar的年往前推2年

c.add(YEAR,-2);//与add类似,但不会向上一个字段进位

c.roll(MONTH,3);

}

}

1.设置Calendar的容错性

Calendar cal =Calendar.getInstance();//YEAR+1,MONTH+1

cal.set(MONTH,13);//关闭容错性

cal.setLenient(false);//程序运行异常

cal.set(MONTH,13);

2.set()方法延迟修改

尽管set(f,value)方法的日历字段f是立即修改的,但Calendar的时间不会立即修改,知道下次调用get(),getTime(),getTimeMillis(),add()或roll()时才会修改日历的时间。

Calendar cal =Calendar.getInstance();

cal.set(2003,7,31);//将月份设为9,但9月31日不存在。

cal.set(MONTH,8);//如果立即修改,cal会设为10月1日

System.out.println(cal.getTime());//再设置DATE字段,输出2003-10-5

cal.set(DATE,5);

System.out.println(cal.getTime());//如果不立即修改,cal仅将MONTH修改为9月//System.out.println(cal.getTime());//再设置DATE字段,输出2003-9-5

cal.set(DATE,5);

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

DateFormat格式化日期、时间

getDateInstance():返回一个日期格式器,只有日期,没有时间

getTimeInstance():返回一个时间格式器,只有时间,没有日期

getDateTimeInstance():返回一个时间格式器,既有时间,也有日期

日期样式、时间样式,DateFormat的四个静态常量:FULL、LONG、MEDIUM、SHORT

importjava.text.DateFormat;//静态导入DateFormat类里所有类变量,可以直接使用FULL、LONG、MEDIUM、SHORT等

import static java.text.DateFormat.*;importjava.util.Locale;importjava.util.Date;public classa{public static voidmain(String[] args){

Date dt= newDate();

Locale locale=Locale.CHINA;

DateFormat df1=DateFormat.getDateInstance(FULL,locale);

DateFormat df2=DateFormat.getTimeInstance(FULL,locale);

System.out.println(df1.format(dt));

System.out.println(df2.format(dt));

}

}

DateFormat的parse()方法可以把一个字符串解析成Date对象,但要求被解析的字符串必须符合日期字符串的要求。缺点:不够灵活,为了更好地格式化日期、解析日期字符串,Java提供了SimpleDateFormat类

SimpleDateFormat格式化日期

importjava.text.SimpleDateFormat;importjava.util.Date;importjava.text.ParseException;public classa{public static voidmain(String[] args)throwsParseException{

Date d= newDate();

SimpleDateFormat sdf1= new SimpleDateFormat("Gyyyy年中第D天");//公元2018年中第160天

String dateStr =sdf1.format(d);

String str= "14###3月##21";

SimpleDateFormat sdf2= new SimpleDateFormat("yy###M月##dd");

System.out.println(sdf2.parse(str));

}

}

Java8新增的DateTimeFormatter格式器类

DateTimeFormatter相当于DateFormat和SimpleDateFormat的合体类,功能非常强大

1.使用DateTimeFormatter完成格式化

importjava.time.format.DateTimeFormatter;importjava.time.format.FormatStyle;importjava.time.LocalDateTime;public classa{public static voidmain(String[] args){

DateTimeFormatter[] formatters= newDateTimeFormatter[]{//直接使用常量创建DateTimeFormatter格式器

DateTimeFormatter.ISO_LOCAL_DATE,

DateTimeFormatter.ISO_LOCAL_TIME,

DateTimeFormatter.ISO_LOCAL_DATE_TIME,//使用本地化的不同风格来创建DateTimeFormatter格式器

DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL,FormatStyle.MEDIUM),

DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG),//根据模式字符串来创建DateTimeFormatter格式器

DateTimeFormatter.ofPattern("Gyyyy%%MMM%dd HH:mm:ss")

};

LocalDateTime date=LocalDateTime.now();for(int i = 0 ; i < formatters.length ; i++){//下面两行代码作用相同//System.out.println(date.format(formatters[i]));

System.out.println(formatters[i].format(date));

}

}

}

2.使用DateTimeFormatter解析字符串

importjava.time.format.DateTimeFormatter;importjava.time.LocalDateTime;public classa{public static voidmain(String[] args){

String str1= "2011@@02@@04 01时02分03秒";

DateTimeFormatter formatter1= DateTimeFormatter.ofPattern("yyyy@@MM@@dd HH时mm分ss秒");

LocalDateTime dt1=LocalDateTime.parse(str1,formatter1);

System.out.println(dt1);

}

}

java时间日期格式器_JAVA基础类库(二)-----日期、时间类和格式器相关推荐

  1. java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...

    response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...

  2. java 基础库_Java基础类库

    包 1.java.lang包:java类库中的核心部分,包含System系统类.数学运算的Math类.处理字符串的String类以及8个数据类型包装类(Integer.Double.Float.Cha ...

  3. java对象生成的时间_Java基础之一组有用的类——生成日期和时间(TryDateFormats)...

    控制台程序. java.util包中含有相当多的类涉及日期和时间,包括Date类.Calendar类和GregorianCalendar类. Date类对象其实定义了精确到毫秒的时刻,从1970年1月 ...

  4. java的时间日期类_Java基础学习:日期时间类

    Date 类 所在的包:java.util.Date Date 类表示特定的瞬间,精确到毫秒.创建对象的值为从1970年1月1日00:00:00 到当前系统显示时间所经历的毫秒数. 例如:public ...

  5. java基础类加载器_Java基础之类加载器

    1. 什么是类加载器? 加载类的工具. 2. Java虚拟机中可以安装多个类加载器,系统默认三个主要的类加载器,每个类负责加载特定位置的类: BootStrap,ExtClassLoader,AppC ...

  6. java gzip 解压文件_Java实现文件压缩与解压[zip格式,gzip格式]

    原文:http://www.cnblogs.com/visec479/p/4112881.html#3069573 Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个 ...

  7. java 哈希表和向量_Java基础知识笔记(一:修饰词、向量、哈希表)

    一.Java语言的特点(养成经常查看Java (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最难理解的多重继承技术 ...

  8. java保护型数据成员_Java基础知识笔记第四章:类和对象

    编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 classPerson{ ....... }class植物{ ....... } 类体 类使用类体来描述 ...

  9. java比较日期字符串大小写_java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

最新文章

  1. Scala学习 day01 Scala的类/方法/对象/单例对象
  2. 软件构造第三章 第五部分
  3. 史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)
  4. infomix数据库版本sql_数据库周刊31丨华为openGauss 正式开源;7月数据库排行榜发布...
  5. 插入排序---希尔插入排序算法(Javascript版)
  6. python发送邮件并返回提示_python-邮件提醒功能
  7. 红杉中国2021企业数字化年度指南:企业如何制胜数字化浪潮?
  8. UISearchBar背景透明,去掉背景,自定义背景
  9. pane Java_ToolPane.java
  10. 使用纯文本方式编写软件设计文档
  11. Linux查看端口命令
  12. 计算机音乐蜡笔小新,蜡笔小新背景音乐-原创
  13. (六)分布式系统认证方案
  14. MySQL 从 5.7 到 8.0
  15. Error at hooking API “LoadStringA“ Dump first 32 bytes:
  16. eeprom--24LC64
  17. 「软件测试4」一文详解四大典型的白盒测试方法
  18. 【大学物理·静止电荷的电场】电容器的电容
  19. openssh升级后使用CRT远程报错:没有兼容的加密程序,服务器支持这些加密程序
  20. 红图新媒体讲解营销技巧新媒体营销

热门文章

  1. Spring MVC:Ajax和JQuery
  2. Java SE 11:推动Java向前发展
  3. JUnit 4.9(测试版3)中的规则
  4. linux安装mysql phpmyadmin_ubuntu mysql远程连接+phpmyadmin安装
  5. sql 账号查询一个表勾选那个权限_Spring Cloud微服务架构中的数据权限DataPermision实现方案...
  6. 平舌音 Z C S 的正确发音方式
  7. NewServlet ‘***Servlet‘ already exists inthis Web facet.
  8. 《标准普通话教程》中对平舌音的发音方法的说明
  9. MacBook/MacOS/Mac OS 关于启动/停止/重启服务(进程/程序)的命令
  10. C/C assert()函数用法总结与注意事项