热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVA日期时间处理

一、有关时间日期的几个问题UTCUT世界标准时间GMT格林尼治时间HowtogetthecurrenttimeSystem.currentTimeMillis—–返回当前时间点的

一、有关时间日期的几个问题
  • UTC/UT
    世界标准时间
  • GMT
    格林尼治时间

  • How to get the current time
    System.currentTimeMillis —– 返回当前时间点的毫秒表示,一般用于记录程序的运行时间
    Date date = new Date();
    Calendar calendar = Calendar.getInstance();

  • How to format it
    日期的转换使用DateForma抽象类的子类
    SimpleDateFormat new SimpleDateFormat(“日期格式”)
  • How to convert a string to a date/time
  • 方法一:
    ①、已知str=”2016,02,21”,
    new SimpleDateFormat(“yyyy,MM,dd”) ———创建要解析字符串为日期的格式
    ②、sdf.parse(str) —–返回字符串对应的Date,SimpleDateFormat除了格式化Date为字符串外,还能把字符串按格式解析为Date

  • 方法二
    ①、先将字符串转为
    ②、调用Timestamp t =
    new Timestamp().valueOf(str);

  • 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 second = c.get(Calendar.SECOND); //获取当前秒
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String curDate = s.format(c.getTime()); //当前日期

二、与时间日期处理有关的类

这里写图片描述

Date类

java.util.Date的API简介
The class Date represents a specific instant in time, with millisecond precision
它提供了很多方法,但是有些已经废弃,不再使用了,具体可以查看API文档。
下面看一个Date类的实例:

public class TestDate{public static void main(String[] args){TestDate testdate = new TestDate();testdate.getSystemCurrentTime();testdate.getCurrentDate();}public void getSystemCurrentTime(){System.out.println("---获取系统当前时间---");System.out.println(System.currentTimeMils());}public void getCurrentDate(){System.out.println("---获取系统当前时间---");Date date = new Date();System.out.println("现在的日期是="+date.toString());System.out.println("自1970年1月1日0时0分0秒开始至今所经历的毫秒数="+date.getTime());}
}

Calendar类

Calendar类API简介:
The Calendar class is an abstract class that provides methods for converting between a specific instant in time and a set of calendar fields such as YEAR, MONTH,
DAY_OF_MONTH,HOUR, and so on, and for manipulating the calendar fields, such as getting the date of the next week. An instant in time can be represented by a millisecond value that is an offset from the Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian).
它可以完全取代Date和DateFormat的组合对日期格式的处理,并且对日期的加减操作也特别方便。

DateFormat类

API简介:
DateFormat is an abstract class for date/time formatting subclasses which formats and parses dates or time in a language-independent manner. The date/time formatting subclass, such as SimpleDateFormat, allows for formatting (i.e., date -> text), parsing (text -> date), and normalization. The date is represented as a Date object or as the milliseconds since January 1, 1970, 00:00:00 GMT.
使用最多的是SimpleDateFormat,它提供了许多方法用来将Date对象转成指定风格式的字符串形式,可以将符合要求的日期格式字符串形式转换成Date对象。

三、实例

日期格式字符串到日期类对象

String datestr = new "2016年2月22日";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm")
Date date = sdf(datestr);

日期加减处理

//Calendar的add方法有两个参数,第一个指定加减的单位,第二个指定加减的数量
Calendar c = getCalendar();
c.add(Calendar.YEAR,-1) ;
c.add(Calendar.MINUTE,-30);

Date和Calendar的转换

Calendar c = getCalendar();
Date date = new Date(c.getTimeInMillis());

四、总结

JAVA中日期经常使用一下几个方面:
①、创建日期
②、日期格式化显示
③、日期的转换(主要是和字符串之间的相互转换)
④、日期中年、月、日、时、分、秒等获取
⑤、日期的大小比较,日期的加减


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • JVM:33 如何查看JVM的Full GC日志
    1.示例代码packagecom.webcode;publicclassDemo4{publicstaticvoidmain(String[]args){byte[]arr ... [详细]
author-avatar
川川shilohjr_993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有