Calendar是一个抽象类----专门获取一个时间点的DAY,MONTH,YEAR,一年中的第几天,星期几,一个月中的第几天等等

Calendar rightNow = Calendar.getInstance()可获得一个Calendar (将当前时间点封装成一个Calendar对象)

java.util.Date类   子类Calendar是一个抽象类----专门获取一个时间点的DAY,MONTH,YEAR,一年中的第几天,星期几,一个月中的第几天等等

Calendar rightNow = Calendar.getInstance()可获得一个Calendar (将当前时间点封装成一个Calendar对象)

用java.util.Date的三个子类java.sql.Date/java.sql.Time/java.sql.Timestamp处理

------------java.sql.Date   只存日期(年月日)

------------java.sql.Time   只存时间(时分秒  毫秒???)

------------java.sql.Timestamp(时间点):包括日期和时间两部分(年月日时分秒.纳秒)

——————————————————————————————————————————————————————

1.UTC/UT

世界标准时间

2.GMT

格林威治时间---1970 年 1 月 1 日 00:00:00(貌似和世界标准时间是一回事)

3.how to get the current time

1)System.currentTimeMillis-----返回当前时间点的毫秒表示,一般用于记录程序的运行时间

2)Date date = new Date();

3)Calendar calendar = Calendar.getInstance();

4.how to format it

日期的格式化(比如年月日的格式---年/月/日或年-月-日)要使用(java.text包中)抽象类DateFormat的子类

SimpleDateFormat

new SimpleDateFormat("日期格式")---->MM是月份,mm是分;HH是24小时制,而hh是12小时制

5.how to convert a string to a date/time

方法一:

1)已知str="2012,12,21",new SimpleDateFormat("yyyy,MM,dd")----->创建要解析字符串为日期的格式

2)sdf.parse(str)--->返回字符串对应的Date------->SimpleDateFormat除了格式化Date为字符串外,还能把字符串

按格式解析为Date

方法二:

1)先将字符串转为"yyyy-mm-dd hh:mm:ss.0(纳秒)"的格式

2)调用Timestamp t = new Timestamp().valueOf(str);(Timestamp的静态方法,util.Date.parse方法已过时..)

6.how to process the date/time with database

用java.util.Date的三个子类java.sql.Date/java.sql.Time/java.sql.Timestamp处理

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));    //获取东八区时间

int year = c.get(Calendar.YEAR);    //获取年

int month = c.get(Calendar.MONTH) + 1;   //获取月份,0表示1月份

int day = c.get(Calendar.DAY_OF_MONTH);    //获取当前天数

int first = c.getActualMinimum(c.DAY_OF_MONTH);    //获取本月最小天数

int last = c.getActualMaximum(c.DAY_OF_MONTH);    //获取本月最大天数

int time = c.get(Calendar.HOUR_OF_DAY);       //获取当前小时

int min = c.get(Calendar.MINUTE);          //获取当前分钟

int xx = c.get(Calendar.SECOND);          //获取当前秒

SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String curDate = s.format(c.getTime());  //当前日期

Date d2 = new Date();

//年份

int year = d2.getYear() + 1900;

//月份

int month = d2.getMonth() + 1;

//日期

int date = d2.getDate();

//小时

int hour = d2.getHours();

//分钟

int minute = d2.getMinutes();

//秒

int second = d2.getSeconds();

//星期几

int day = d2.getDay();

使用Date类中对应的get方法,可以获得Date类对象中相关的信息,需要注意的是使用getYear获得是Date对象中年份减去1900以后的值,所以需要显示对应的年份则需要在返回值的基础上加上1900,月份类似。在Date类中还提供了getDay方法,用于获得Date对象代表的时间是星期几,Date类规定周日是0,周一是1,周二是2,后续的依次类推。

//将Date类的对象转换为相对时间

long t = d3.getTime();

System.out.println(t);

//将相对时间转换为Date类的对象

Date d4 = new Date(time);

System.out.println(d4);

使用Date对象中的getTime方法,可以将Date类的对象转换为相对时间,使用Date类的构造方法,可以将相对时间转换为Date类的对象。经过转换以后,既方便了时间的计算,也使时间显示比较直观了。

从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些,下面就介绍一下Calendar类的使用。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

public final Date getTime()方法的作用是将Calendar类型的对象转换为对应的Date类对象,两者代表相同的时间点。

类似的方法是setTime,该方法的作用是将Date对象转换为对应的Calendar对象,该方法的声明如下:public final void setTime(Date date)

转换的示例代码如下:

Date d = new Date();

Calendar c6 = Calendar.getInstance();

//Calendar类型的对象转换为Date对象

Date d1 = c6.getTime();

//Date类型的对象转换为Calendar对象

Calendar c7 = Calendar.getInstance();

c7.setTime(d);

//将Calendar对象转换为相对时间

long t1 = c8.getTimeInMillis();

//将相对时间转换为Calendar对象

Calendar c9 = Calendar.getInstance();

c9.setTimeInMillis(t1);

/**

* 计算两个日期之间相差的天数

*/

public class DateExample1 {

public static void main(String[] args) {

//设置两个日期

//日期:2009年3月11号

Calendar c1 = Calendar.getInstance();

c1.set(2009, 3 - 1, 11);

//日期:2010年4月1号

Calendar c2 = Calendar.getInstance();

c2.set(2010, 4 - 1, 1);

//转换为相对时间

long t1 = c1.getTimeInMillis();

long t2 = c2.getTimeInMillis();

//计算天数

long days = (t2 - t1)/(24 * 60 * 60 * 1000);

System.out.println(days);

}

}

import java.util.*;

/**

* 输出当前月的日历

*/

public class DateExample2{

public static void main(String[] args){

//获得当前时间

Calendar c = Calendar.getInstance();

//设置代表的日期为1号

c.set(Calendar.DATE,1);

//获得1号是星期几

int start = c.get(Calendar.DAY_OF_WEEK);

//获得当前月的最大日期数

int maxDay = c.getActualMaximum(Calendar.DATE);

//输出标题

System.out.println("星期日 星期一 星期二 星期三 星期四 星期五   星期六");

//输出开始的空格

for(int i = 1;i < start;i++){

System.out.print("      ");

}

//输出该月中的所有日期

for(int i = 1;i <= maxDay;i++){

//输出日期数字

System.out.print(" " + i);

//输出分隔空格

System.out.print("     ");

if(i < 10){

System.out.print(' ');

}

//判断是否换行

if((start + i - 1) % 7 == 0){

System.out.println();

}

}

//换行

System.out.println();

}

}

java getday_java日期时间处理小结相关推荐

  1. java处理日期时间 相加减

    参考:http://alexfc.iteye.com/blog/363185 JAVA处理日期时间常用方法: 1.java.util.Calendar  Calendar 类是一个抽象类,它为特定瞬间 ...

  2. mongo java 日期,Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

    我有Java 8日期/时间字段的简单文档 @Document public class Token { private Instant createdAt; ... } 我希望坚持使用Spring D ...

  3. java获取日期/时间

    获取年月日.小时分钟秒 public class DateTimeTest {public static void main(String[] args) {Calendar cal = Calend ...

  4. Java Date 日期 时间 相关方法

    DateTools.java import java.text.SimpleDateFormat; import java.util.Date; /*** 日期操作类*/ public class D ...

  5. Java 8日期时间API教程:LocalDateTime

    该博文是Java 8中引入的有关Date Time API的系列教程的一部分.在本博文中,我将介绍LocalDateTime类中可用的一些方法. LocalDateTime是一个不可更改的线程安全对象 ...

  6. Java—格式化日期/时间

    关注微信公众号:CodingTechWork,一起学习进步. DateFormat    DateFormat继承MessageFormat,是实现日期格式化的抽象类.提供两个方法:format()用 ...

  7. Java 各种日期/时间 对象转Long时间戳

    package cn.xbz;import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTi ...

  8. Java 8 日期时间类

    Java 8 推出了新的日期时间类,比较常使用的有LocalDateTime,ZonedDateTime,ZoneId,ZoneOffset,DateTimeFormatter,通过这几个类可以使处理 ...

  9. JAVA —— 比较日期时间大小

    使用场景:根据日期查询记录(如日志类表)时,为避免日期时间超出范围或超出当前最新时间出现报错,需要通过比较日期时间来做条件判断. 一.比较 年 月 日 import java.text.ParseEx ...

最新文章

  1. 创建Student Course SC表
  2. PAT甲级1138 Postorder Traversal:[C++题解]前序遍历和中序遍历建树
  3. Neo4j:遍历查询超时
  4. Redis 基本数据类型和使用
  5. iOS 操作系统被曝无线网络命名bug 导致 iPhone无法连接无线网络
  6. SQL Server:如何加入第一行
  7. 检测用户浏览器是否支持cookie
  8. Android Intent机制与常见的用法
  9. 文档自动同步云服务器,​文件自动同步网盘能实现吗?
  10. jinjia2模板语法
  11. 制作STM32F429的外部SPI-FLASH下载算法
  12. 深度剖析!阿里巴巴社招面试题答案总结分享,希望对大家有帮助!
  13. 如何快速开发实用的应用软件?
  14. 数据分析师认证考试形式发布,如何掌握考试重难点?
  15. sfc /scannow是什么意思,有什么作用?
  16. Uva 11374 - Airport Express(枚举+最短路)
  17. 新型冠状病毒传播规律离散微观模型(结果与实际情况一致)-附源码
  18. ABF平台设计(一)-新一代标准化中后台研发平台
  19. wps怎么去除段落布局
  20. [神器]Windows平台本地socks5代理客户端-ProxyCap

热门文章

  1. 微信第三方获取component_verify_ticket接口
  2. 使用Docker实现容器化(一)——Docker基础的介绍与应用
  3. JLOI2017——相逢是问候,离别是祝愿
  4. element表格排序(带有数值、字符串)解决排序错乱
  5. 畅享9s能不能升级鸿蒙系统,鸿蒙OS 2.0详细升级名单公布!史上最大规模、老用户爽翻了...
  6. Outlook回复邮件自动加上附件
  7. css实现各种各样的三角形
  8. 微信小程序实现搜索功能
  9. 电脑总弹出计算机界面,每次电脑打开总是弹出很多广告窗口,怎么解决?
  10. ctf misc 图片隐写(所见非真)