Java常用类(I)-时间和日期
java开发中,常涉及到时间的处理,这里就做一个总结,同样也是一个笔记。
相关类及概念
1. java.util.Date:表示特定的瞬间,精确到毫秒.由于API 不易于实现国际化,日期和时间字段之间转换等方法已被废弃。
2. java.sql.Date:父类为java.util.Date,它包装了毫秒值的瘦包装器。toString方法后,yyyy-MM-dd。初始化需指定时间点毫秒数。多用于与数据库交互相关的时间设定。下同
3. java.sql.Time:与 java.util.Date 类有关的瘦包装器。返回特定时间点毫秒数下的HH:mm:ss
4. java.sql.Timestamp:与 java.util.Date 类有关的瘦包装器,同上,格式为:yyyy-MM-dd HH:mm:ss.SSS
5. java.text.SimpleDateFormat:以与语言环境有关的方式来格式化和解析日期的具体类。允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化.
6. java.util.Calendar:一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
7. java.util.GregorianCalendar:是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统
场景
a.格式转换
字符串-> 日期(aDate=2018-11-22)
1、通过SimpleDateFormat的parse方法
SimpleDateFormat pattern=new SimpleDateFormat("yyyy-MM-dd");
Date date1=pattern.parse(adate);
2、通过Timestamp的valueof
String atime="1977-06-05 10:05:23.423";
Timestamp atim=Timestamp.valueOf(atime);
b. 获取时间
1、当前瞬间
日期 Date date=new Date();
毫秒数 System.currentTimeMills;
日历 Calendar.getInstance();
2、指定毫秒数(12345678910L)
日期:Date date1=new Date(12345678910L);
毫秒数(无)
日历
Calendar calendar= new GregorianCalendar();
calendar.setTime(new Date(12345678910L));
Integer year=calendar.get(Calendar.YEAR);
3、指定日期
日期(无)
毫秒数
GregorianCalendar greCalendar=new GregorianCalendar(2018,11,22,5,7,8);
Long millSeconds=greCalendar.getTime().getTime();
日历(毫秒数的翻版)
GregorianCalendar greCalendar=new GregorianCalendar();
greCalendar.setTime(date);
c.指定格式
当前时间为例
Date date=new Date();
SimpleDateFormat pattern=new SimpleDateFormat("yyyy年MM月dd日 HH小时mm分钟ss秒");
System.out.pringln(pattern.format(date));
练习
假如有一个IT公司,有10个人每日轮流值班(A~J)监控系统。那么从本周一开始的100天内,请问周末值班最多是哪位?有多少天?
public class MapTest {
public static void main(String[] args) {
Map<String, Integer> hmap = new HashMap<>(); String str="ABCDEFGHIJ";
String[] strings=str.split(""); SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTime(new Date());
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
if(hmap.get(strings[j])== null){
hmap.put(strings[j],1);
}else{
hmap.put(strings[j],hmap.get(strings[j])+1);
}
cal.add(Calendar.DATE,1);
}else{
cal.add(Calendar.DATE,1);
}
}
}
for (Map.Entry<String,Integer> entry:hmap.entrySet()){
System.out.println(entry);
}
}
}
Java常用类(I)-时间和日期的更多相关文章
- Java常用类之时间类
JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...
- 深入理解Java常用类-----时间日期
除了String这个类在日常的项目中比较常用之外,有关时间和日期的操作也是经常遇到的,本篇就讲详细介绍下Java API中对时间和日期的支持.其实在Java 8之前时间日期的API并不是很好用,以至于 ...
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java Calendar 类的时间操作
Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- Java常用类之要点总结
Java常用类之要点总结
随机推荐
- 学习EXTJS6(6)基本功能-工具栏和菜单
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- CentOS 6.3(x86_32)下安装Oracle 10g R2
一.硬件要求 1.内存 & swap Minimum: 1 GB of RAMRecommended: 2 GB of RAM or more 检查内存情况 # grep MemTotal / ...
- 反射常用API
反射所有功能都是通过class API来实现的 class常用API有: 1.class.GETINTERFACES():获得这个类实现的接口. 2.class.getMethods() Method ...
- [React Native] Reduce Long Import Statements in React Native with Absolute Imports
In large React Native projects, it’s common to have long relative import paths like: import MyCompon ...
- hdu5326 Work
题目链接:点击打开链接 题目大意:有n个人.各自管理不同的人,问有多少人管理k个人. 思路:先记录每一个人的直接上级.然后模拟路径压缩的过程进行计数求和. #include<stdio.h> ...
- 根据图片url地址获取图片的宽高
/** * 根据img获取图片的宽高 * @param img 图片地址 * @return 图片的对象,对象中图片的真实宽高 */ public BufferedImage getBufferedI ...
- spring 获取对象方式
1 通过配置文件注入 1.配置文件里配置注入信息 2.class中加入注解的接口(set get. 构造函数等) 2.通过注解方式获得 1. 在class中对方法加入注解信息 (类标示 :@Servi ...
- 初探boost之noncopyable学习笔记
noncopyable 功能 同意程序轻松实现一个不可复制的类. 需包括头文件 #include<boost/noncopyable.hpp> 或 #include<boos ...
- GNU TeXmacs 1.99.8 发布,所见即所得科学编辑器(看看老实的GUI)
GNU TeXmacs 1.99.8 已发布,这是一个支持各种数学公式的所见即所得编辑器,可以用来编辑文本.图形.数学.交互内容,它的界面非常友好,并且内置高质量的排版引擎. 更新内容: bug 修复 ...
- luogu1082 同余方程
题目大意:求$$ax\equiv 1(\ \mathrm{mod}\ m)$$的最小正整数解. 因为$ax-1|m$,故令$ax-1=-ym$,原方程就变成了$ax+my=1$.根据bezout定理此 ...