`
fly1206
  • 浏览: 57254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个好用的日期时间类(java)收藏

阅读更多


import java.util.*;
import java.text.*;

/**
 * a <code> DateTime </code> 定义了日期时间的一些便捷的格式化操作
 * 
 * @version 1.0
 * @author markhuang
 */
public class DateTime {
 /**
  * 存储时间和日期,默认当前时间和日期
  */
 private Calendar cale = Calendar.getInstance();

 /**
  * 默认构造函数,得到当前时间和日期
  */
 public DateTime() {
  //
 }

 /**
  * 构造函数,可设置毫秒
  * 
  * @param millisecond
  * 过去的毫秒数
  * @see #DateTime
  */
 public DateTime(long millisecond) {
  cale.setTimeInMillis(millisecond);
 }

 /**
  * 构造函数,可设置年月日时分秒
  * 
  * @param year
  * 年
  * @param month
  * 月
  * @param day
  * 日
  * @param hour
  * 小时
  * @param minute
  * 分钟
  * @param second
  * 秒
  * @see #DateTime(long)
  */
 public DateTime(int year, int month, int day, int hour, int minute,
  int second) {
  cale.set(Calendar.YEAR, year);
  cale.set(Calendar.MONTH, month - 1);
  cale.set(Calendar.DAY_OF_MONTH, day);
  cale.set(Calendar.HOUR_OF_DAY, hour);
  cale.set(Calendar.MINUTE, minute);
  cale.set(Calendar.SECOND, second);
 }

 /**
  * 得到当前年
  * 
  * @return 当前年
  */
 public int year() {
  return cale.get(Calendar.YEAR);
 }

 /**
  * 得到当前月
  * 
  * @return 当前月
  */
 public int month() {
  return cale.get(Calendar.MONTH) + 1;
 }

 /**
  * 得到当前日
  * 
  * @return 当前日
  */
 public int day() {
  return cale.get(Calendar.DAY_OF_MONTH);
 }

 /**
  * 得到当前小时
  * 
  * @return 当前小时
  */
 public int hour() {
  return cale.get(Calendar.HOUR_OF_DAY);
 }

 /**
  * 得到当前分钟
  * 
  * @return 当前分钟
  */
 public int minute() {
  return cale.get(Calendar.MINUTE);
 }

 /**
  * 得到当前秒
  * 
  * @return 当前秒
  */
 public int second() {
  return cale.get(Calendar.SECOND);
 }

 /**
  * 得到当前毫秒
  * 
  * @return 当前毫秒
  */
 public int millisecond() {
  return cale.get(Calendar.MILLISECOND);
 }

 /**
  * 得到总毫秒数
  * 
  * @return 总毫秒数
  */
 public long allmillisecond() {
  return cale.getTimeInMillis();
 }

 /**
  * 得到当前星期几
  * 
  * @return 当前星期几
  */
 public int dayofweek() {
  return cale.get(Calendar.DAY_OF_WEEK) - 1;
 }

 /**
  * 得到当前是当年中的第几天
  * 
  * @return 当年中的第几天
  */
 public int dayofyear() {
  return cale.get(Calendar.DAY_OF_YEAR);
 }

 /**
  * 得到yyyyMMddhhmmss 格式的日期
  * 
  * @return yyyyMMddhhmmss 格式的日期
  * @see #longdatetime(char, char)
  */
 public String shortdatetime() throws ArrayIndexOutOfBoundsException {
  SimpleDateFormat format = null;
  try {
  format = new SimpleDateFormat("yyyyMMddhhmmss");
  } catch (IllegalArgumentException e) {
  throw new ArrayIndexOutOfBoundsException();
  }
  return format.format(cale.getTime());
 }

 /**
  * 得到类似yyyy-MM-dd hh:mm:ss 格式的日期
  * 
  * @param datesep
  * 日期分隔符号
  * @param timesep
  * 时间分隔符号
  * @return 类似yyyy-MM-dd hh:mm:ss 格式的日期
  * @see #longdatelongtime(char, char)
  */
 public String longdatetime(char datesep, char timesep)
  throws ArrayIndexOutOfBoundsException {
  String pattern = "yyyy" + datesep + "MM" + datesep + "dd";
  pattern += " hh" + timesep + "mm" + timesep + "ss";
  SimpleDateFormat format = null;
  try {
  format = new SimpleDateFormat(pattern);
  } catch (IllegalArgumentException e) {
  throw new ArrayIndexOutOfBoundsException();
  }
  return format.format(cale.getTime());
 }

 /**
  * 得到类似yyyy-MM-dd hh:mm:ss:SSS 格式的日期
  * 
  * @param datesep
  * 日期分隔符号
  * @param timesep
  * 时间分隔符号
  * @return 类似yyyy-MM-dd hh:mm:ss:SSS 格式的日期
  * @see #longdatetime(char, char)
  */
 public String longdatelongtime(char datesep, char timesep)
  throws ArrayIndexOutOfBoundsException {
  String pattern = "yyyy" + datesep + "MM" + datesep + "dd";
  pattern += " hh" + timesep + "mm" + timesep + "ss";
  pattern += timesep + "SSS";
  SimpleDateFormat format = null;
  try {
  format = new SimpleDateFormat(pattern);
  } catch (IllegalArgumentException e) {
  throw new ArrayIndexOutOfBoundsException();
  }
  return format.format(cale.getTime());
 }

 /**
  * 得到类似yyyyMMdd格式的日期
  * 
  * @return 类似yyyyMMdd格式的日期
  * @see #longdate(char)
  */
 public String shortdate() throws ArrayIndexOutOfBoundsException {
  SimpleDateFormat format = null;
  try {
  format = new SimpleDateFormat("yyyyMMdd");
  } catch (IllegalArgumentException e) {
  throw new ArrayIndexOutOfBoundsException();
  }
  return format.format(cale.getTime());
 }

 /**
  * @param datesep
  * 日期分隔符号
  * @return 类似yyyy-MM-dd格式的日期
  * @see #shortdate()
  */
 public String longdate(char datesep) throws ArrayIndexOutOfBoundsException {
  String pattern = "yyyy" + datesep + "MM" + datesep + "dd";
  SimpleDateFormat format = null;
  try {
  format = new SimpleDateFormat(pattern);
  } catch (IllegalArgumentException e) {
  throw new ArrayIndexOutOfBoundsException();
  }
  return format.format(cale.getTime());
 }

 /**
  * @param s
  * 被输出到输出终端的值
  */
 public <T> void out(T s) {
  System.out.println(s);
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub

  try {
  DateTime dt = new DateTime();
  dt.out(dt.year());
  dt.out(dt.month());
  dt.out(dt.longdatetime('-', '&'));
  dt.out(dt.longdatelongtime('-', ':'));
  dt = new DateTime(2009, 5, 21, 12, 56, 12);
  dt.out(dt.day());
  dt.out(dt.hour());
  dt.out(dt.longdatetime('-', '&'));
  dt.out(dt.longdatelongtime('-', ':'));
  dt.out(new DateTime().allmillisecond() - dt.allmillisecond());
  dt = new DateTime(dt.allmillisecond() - 1000000000);
  dt.out(dt.minute());
  dt.out(dt.second());
  dt.out(dt.longdatelongtime('-', ':'));
  } catch (ArrayIndexOutOfBoundsException e) {
  new DateTime().out(e.getMessage());
  }
 }
}

分享到:
评论

相关推荐

    Java时间日期处理相关文档收藏

    在Java中,有多种类和API可以用于时间日期处理,包括`java.util.Date`、`java.util.Calendar`、`java.time`包下的类以及Joda-Time库。 1. `java.util.Date`:这是早期Java中的日期类,它表示了从1970年1月1日00:00:...

    精品专题(2021-2022年收藏)JAVA处理日期时间常用方法.doc

    这个精品专题课件聚焦于`java.util.Calendar`和`java.util.Date`这两个核心类,以及`java.text.SimpleDateFormat`类用于日期时间的格式化。 `java.util.Calendar`是一个抽象类,它提供了一种将日期和时间字段(如年...

    一个Java 8+的LangChain实现。在(企业)Java环境中构建强大的基于LLM的应用程序.zip

    LangChain项目是一个利用这些新特性的实现,特别适用于在企业级Java环境中创建基于语言模型(LLM)的应用程序。这个项目的重点在于利用Java 8的函数式编程、流API以及Lambda表达式来构建灵活、可扩展且易于维护的...

    Java 基础(Java-8).zip

    相关主题多线程收藏Java 数据库连接 (JDBC)Java 程序Java 字符串方法雅加达服务器页面 (JSP)ServletJava 多项选择题Java 设计模式休眠Spring 框架基础目录介绍Java 架构Java 数据类型Java 方法Java 函数式编程Java ...

    JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip

    2. **日期时间工具类**:可能提供了对日期和时间的操作,比如格式化日期、时间差计算、日期加减等,扩展了 `java.time` 包的功能。 3. **集合工具类**:可能包含对集合框架的增强操作,如集合的深度复制、集合的...

    开发工具类代码 java

    总的来说,"开发工具类代码 java" 是一个集实用性与教育性于一体的资源,它包含了Java开发中的常见问题解决方案和规范化的代码实现,值得开发者们收藏和学习。通过深入研究和应用这些工具类,可以提升个人的编程技能...

    Java API帮助文档

    Java API中的每个类都代表一个特定的概念或实体。理解类的构造、继承、封装和多态性是掌握Java API的关键。 3. **基础类型与包装类**: Java有八种基础数据类型,如int、char和boolean。为了支持面向对象的特性,...

    收藏的一些关于java的书籍

    其次,关于“Java 8”的内容,Java 8是Java历史上一个重要的版本,引入了许多创新特性,对开发方式产生了深远影响。可能包含的知识点有: 1. 函数式编程:Java 8引入了Lambda表达式和函数接口,大大简化了函数式...

    JAVA记事本源代码 收藏

    根据提供的文件信息,我们可以分析出该Java程序是一个简易的记事本应用,它包含了基本的文件操作、编辑功能以及一些额外的功能,如字体设置、颜色选择等。下面将对该源代码涉及的关键知识点进行详细的解析。 ### 一...

    2021-2022年收藏的精品资料软件工程师Java开发中Date的各种相关用法教程.docx

    这篇文档主要讲解了Date在Java开发中的各种用法,包括计算月份最大天数、Calendar与Date之间的转化、日期时间的格式化输出、计算一年中的第几星期以及add()和roll()方法的使用。 1. 计算某一月份的最大天数: 在...

    一个很好的JAVA图书管理系统

    Java图书管理系统是一款基于Java技术实现的高效、稳定且用户友好的图书信息管理软件。它集成了图书的录入、查询、修改、删除等多种功能,旨在为图书馆或个人图书收藏者提供方便快捷的图书管理服务。系统的界面设计...

    java常用代码的集合

    这个集合可能包含的其他常见Java代码可能还包括日期时间操作、文件I/O、正则表达式验证、异常处理、多线程、网络编程等。这些代码片段对于提升开发效率、减少错误以及增强代码可读性都有着极大的帮助。在实际开发中...

    Java讲义与实例

    10. **Java标准库**:JDK自带了大量的类库,如Java.lang、Java.util、Java.io等,提供了各种实用工具类和功能,如字符串操作、日期时间处理、数学计算等。 11. **Java Swing和JavaFX**:这两者是Java的图形用户界面...

    超全的Java类库祥解

    本资源“超全的Java类库祥解”是一个全面的指南,旨在深入解析Java类库中的关键组件,帮助开发者更好地理解和利用这些工具。 在Java类库中,最基础的部分是Java Standard Edition (Java SE) 的核心类库。这些类库...

    Java图书管理系统

    9. **日期与时间处理**:在图书管理系统中,日期和时间的处理尤为重要,比如计算借阅期限、判断是否超期等,需要利用Java的日期时间API,如LocalDate、LocalTime和Duration。 10. **单元测试**:为了保证系统的稳定...

    JAVA 图书管理系统课程设计

    在本课程设计中,我们将探讨如何使用Java编程语言来构建一个图书管理系统。这个系统旨在帮助图书馆或者个人管理他们的图书收藏,包括书籍的添加、删除、查询以及借阅等操作。Java作为一种面向对象的、跨平台的语言,...

    Java课程设计题目收藏.doc

    Java课程设计是一个重要的实践环节,它能够帮助学习者巩固理论知识,提升编程技能。以下是一些基于提供的课程设计题目的详细知识点: 1. **记事本程序**:使用Java GUI库(如Swing或JavaFX)创建图形界面,实现文件...

    Java 8 适合所有人.zip

    Java 8缺失的教程Java 8 不再是一个新话题。有很多关于它的好书出版。但我还是遇到很多 Java 开发人员不知道 Java 8 的强大功能。这本小册子的目的是介绍一些最重要的 Java 8 功能以及它们如何帮助开发人员进行日常...

    毕业设计,基于SSM+MyBatis+MySql+Bootstrap开发的新闻发布系统网站,内含Java完整源代码,数据库脚本

    毕业设计,基于SSM+MyBatis+MySql+Bootstrap开发的新闻发布系统网站,内含Java完整源代码,数据库脚本 基于SSM新闻发布系统网站...新闻收藏: 收藏id,被收藏新闻,收藏人,收藏时间 新闻赞: 赞id,被赞新闻,用户,被赞时间

Global site tag (gtag.js) - Google Analytics