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中,有多种类和API可以用于时间日期处理,包括`java.util.Date`、`java.util.Calendar`、`java.time`包下的类以及Joda-Time库。 1. `java.util.Date`:这是早期Java中的日期类,它表示了从1970年1月1日00:00:...
这个精品专题课件聚焦于`java.util.Calendar`和`java.util.Date`这两个核心类,以及`java.text.SimpleDateFormat`类用于日期时间的格式化。 `java.util.Calendar`是一个抽象类,它提供了一种将日期和时间字段(如年...
LangChain项目是一个利用这些新特性的实现,特别适用于在企业级Java环境中创建基于语言模型(LLM)的应用程序。这个项目的重点在于利用Java 8的函数式编程、流API以及Lambda表达式来构建灵活、可扩展且易于维护的...
相关主题多线程收藏Java 数据库连接 (JDBC)Java 程序Java 字符串方法雅加达服务器页面 (JSP)ServletJava 多项选择题Java 设计模式休眠Spring 框架基础目录介绍Java 架构Java 数据类型Java 方法Java 函数式编程Java ...
2. **日期时间工具类**:可能提供了对日期和时间的操作,比如格式化日期、时间差计算、日期加减等,扩展了 `java.time` 包的功能。 3. **集合工具类**:可能包含对集合框架的增强操作,如集合的深度复制、集合的...
总的来说,"开发工具类代码 java" 是一个集实用性与教育性于一体的资源,它包含了Java开发中的常见问题解决方案和规范化的代码实现,值得开发者们收藏和学习。通过深入研究和应用这些工具类,可以提升个人的编程技能...
Java API中的每个类都代表一个特定的概念或实体。理解类的构造、继承、封装和多态性是掌握Java API的关键。 3. **基础类型与包装类**: Java有八种基础数据类型,如int、char和boolean。为了支持面向对象的特性,...
其次,关于“Java 8”的内容,Java 8是Java历史上一个重要的版本,引入了许多创新特性,对开发方式产生了深远影响。可能包含的知识点有: 1. 函数式编程:Java 8引入了Lambda表达式和函数接口,大大简化了函数式...
根据提供的文件信息,我们可以分析出该Java程序是一个简易的记事本应用,它包含了基本的文件操作、编辑功能以及一些额外的功能,如字体设置、颜色选择等。下面将对该源代码涉及的关键知识点进行详细的解析。 ### 一...
这篇文档主要讲解了Date在Java开发中的各种用法,包括计算月份最大天数、Calendar与Date之间的转化、日期时间的格式化输出、计算一年中的第几星期以及add()和roll()方法的使用。 1. 计算某一月份的最大天数: 在...
Java图书管理系统是一款基于Java技术实现的高效、稳定且用户友好的图书信息管理软件。它集成了图书的录入、查询、修改、删除等多种功能,旨在为图书馆或个人图书收藏者提供方便快捷的图书管理服务。系统的界面设计...
这个集合可能包含的其他常见Java代码可能还包括日期时间操作、文件I/O、正则表达式验证、异常处理、多线程、网络编程等。这些代码片段对于提升开发效率、减少错误以及增强代码可读性都有着极大的帮助。在实际开发中...
10. **Java标准库**:JDK自带了大量的类库,如Java.lang、Java.util、Java.io等,提供了各种实用工具类和功能,如字符串操作、日期时间处理、数学计算等。 11. **Java Swing和JavaFX**:这两者是Java的图形用户界面...
本资源“超全的Java类库祥解”是一个全面的指南,旨在深入解析Java类库中的关键组件,帮助开发者更好地理解和利用这些工具。 在Java类库中,最基础的部分是Java Standard Edition (Java SE) 的核心类库。这些类库...
9. **日期与时间处理**:在图书管理系统中,日期和时间的处理尤为重要,比如计算借阅期限、判断是否超期等,需要利用Java的日期时间API,如LocalDate、LocalTime和Duration。 10. **单元测试**:为了保证系统的稳定...
在本课程设计中,我们将探讨如何使用Java编程语言来构建一个图书管理系统。这个系统旨在帮助图书馆或者个人管理他们的图书收藏,包括书籍的添加、删除、查询以及借阅等操作。Java作为一种面向对象的、跨平台的语言,...
Java课程设计是一个重要的实践环节,它能够帮助学习者巩固理论知识,提升编程技能。以下是一些基于提供的课程设计题目的详细知识点: 1. **记事本程序**:使用Java GUI库(如Swing或JavaFX)创建图形界面,实现文件...
Java 8缺失的教程Java 8 不再是一个新话题。有很多关于它的好书出版。但我还是遇到很多 Java 开发人员不知道 Java 8 的强大功能。这本小册子的目的是介绍一些最重要的 Java 8 功能以及它们如何帮助开发人员进行日常...
毕业设计,基于SSM+MyBatis+MySql+Bootstrap开发的新闻发布系统网站,内含Java完整源代码,数据库脚本 基于SSM新闻发布系统网站...新闻收藏: 收藏id,被收藏新闻,收藏人,收藏时间 新闻赞: 赞id,被赞新闻,用户,被赞时间