import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* <p>Title: 系统时间公共类</p>
* <li>提供取得系统时间的所有共用方法</li>
*/
public class DateUtils {
private static Date date;
private static Calendar CALENDAR = Calendar.getInstance();
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
/** 取得当前时间
* @return 当前日期(Date)
*/
public static Date getCurrentDate() {
return new Date();
}
/** 取得昨天此时的时间
* @return 昨天日期(Date)
*/
public static Date getYesterdayDate() {
return new Date(getCurTimeMillis() - 0x5265c00L);
}
/** 取得去过i天的时间
* @param i 过去时间天数
* @return 昨天日期(Date)
*/
public static Date getPastdayDate(int i) {
return new Date(getCurTimeMillis() - 0x5265c00L*i);
}
/** 取得当前时间的长整型表示
* @return 当前时间(long)
*/
public static long getCurTimeMillis() {
return System.currentTimeMillis();
}
/** 取得当前时间的特定表示格式的字符串
* @param formatDate 时间格式(如:yyyy/MM/dd hh:mm:ss)
* @return 当前时间
*/
public static synchronized String getCurFormatDate(String formatDate) {
date = getCurrentDate();
simpleDateFormat.applyPattern(formatDate);
return simpleDateFormat.format(date);
}
/** 取得某日期时间的特定表示格式的字符串
* @param format 时间格式
* @param date 某日期(Date)
* @return 某日期的字符串
*/
public static synchronized String getDate2Str(String format, Date date) {
simpleDateFormat.applyPattern(format);
return simpleDateFormat.format(date);
}
/** 将日期转换为长字符串(包含:年-月-日 时:分:秒)
* @param date 日期
* @return 返回型如:yyyy-MM-dd HH:mm:ss 的字符串
*/
public static String getDate2LStr(Date date) {
return getDate2Str("yyyy-MM-dd HH:mm:ss", date);
}
/** 将日期转换为长字符串(包含:年/月/日 时:分:秒)
* @param date 日期
* @return 返回型如:yyyy/MM/dd HH:mm:ss 的字符串
*/
public static String getDate2LStr2(Date date) {
return getDate2Str("yyyy/MM/dd HH:mm:ss", date);
}
/** 将日期转换为中长字符串(包含:年-月-日 时:分)
* @param date 日期
* @return 返回型如:yyyy-MM-dd HH:mm 的字符串
*/
public static String getDate2MStr(Date date) {
return getDate2Str("yyyy-MM-dd HH:mm", date);
}
/** 将日期转换为中长字符串(包含:年/月/日 时:分)
* @param date 日期
* @return 返回型如:yyyy/MM/dd HH:mm 的字符串
*/
public static String getDate2MStr2(Date date) {
return getDate2Str("yyyy/MM/dd HH:mm", date);
}
/** 将日期转换为短字符串(包含:年-月-日)
* @param date 日期
* @return 返回型如:yyyy-MM-dd 的字符串
*/
public static String getDate2SStr(Date date) {
return getDate2Str("yyyy-MM-dd", date);
}
/** 将日期转换为短字符串(包含:年/月/日)
* @param date 日期
* @return 返回型如:yyyy/MM/dd 的字符串
*/
public static String getDate2SStr2(Date date) {
return getDate2Str("yyyy/MM/dd", date);
}
/** 取得型如:yyyyMMddhhmmss的字符串
* @param date
* @return 返回型如:yyyyMMddhhmmss 的字符串
*/
public static String getDate2All(Date date) {
return getDate2Str("yyyyMMddhhmmss", date);
}
/** 将长整型数据转换为Date后,再转换为型如yyyy-MM-dd HH:mm:ss的长字符串
* @param l 表示某日期的长整型数据
* @return 日期型的字符串
*/
public static String getLong2LStr(long l) {
date = getLongToDate(l);
return getDate2LStr(date);
}
/** 将长整型数据转换为Date后,再转换为型如yyyy-MM-dd的长字符串
* @param l 表示某日期的长整型数据
* @return 日期型的字符串
*/
public static String getLong2SStr(long l) {
date = getLongToDate(l);
return getDate2SStr(date);
}
/** 将长整型数据转换为Date后,再转换指定格式的字符串
* @param l 表示某日期的长整型数据
* @param formatDate 指定的日期格式
* @return 日期型的字符串
*/
public static String getLong2SStr(long l, String formatDate) {
date = getLongToDate(l);
simpleDateFormat.applyPattern(formatDate);
return simpleDateFormat.format(date);
}
private static synchronized Date getStrToDate(String format, String str) {
simpleDateFormat.applyPattern(format);
ParsePosition parseposition = new ParsePosition(0);
try {
return simpleDateFormat.parse(str);
}
catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/** 将某指定的字符串转换为某类型的字符串
* @param format 转换格式
* @param str 需要转换的字符串
* @return 转换后的字符串
*/
public static String getStr2Str(String format,String str){
Date date = getStrToDate(format,str);
return getDate2Str(format,date);
}
/** 将某指定的字符串转换为型如:yyyy-MM-dd HH:mm:ss的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2LDate(String str) {
return getStrToDate("yyyy-MM-dd HH:mm:ss", str);
}
/** 将某指定的字符串转换为型如:yyyy/MM/dd HH:mm:ss的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2LDate2(String str) {
return getStrToDate("yyyy/MM/dd HH:mm:ss", str);
}
/** 将某指定的字符串转换为型如:yyyy-MM-dd HH:mm的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2MDate(String str) {
return getStrToDate("yyyy-MM-dd HH:mm", str);
}
/** 将某指定的字符串转换为型如:yyyy/MM/dd HH:mm的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2MDate2(String str) {
return getStrToDate("yyyy/MM/dd HH:mm", str);
}
/** 将某指定的字符串转换为型如:yyyy-MM-dd的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2SDate(String str) {
return getStrToDate("yyyy-MM-dd", str);
}
/** 将某指定的字符串转换为型如:yyyy-MM-dd的时间
* @param str 将被转换为Date的字符串
* @return 转换后的Date
*/
public static Date getStr2SDate2(String str) {
return getStrToDate("yyyy/MM/dd", str);
}
/** 将某长整型数据转换为日期
* @param l 长整型数据
* @return 转换后的日期
*/
public static Date getLongToDate(long l) {
return new Date(l);
}
/** 以分钟的形式表示某长整型数据表示的时间到当前时间的间隔
* @param l 长整型数据
* @return 相隔的分钟数
*/
public static int getOffMinutes(long l) {
return getOffMinutes(l, getCurTimeMillis());
}
/** 以分钟的形式表示两个长整型数表示的时间间隔
* @param from 开始的长整型数据
* @param to 结束的长整型数据
* @return 相隔的分钟数
*/
public static int getOffMinutes(long from, long to) {
return (int) ((to - from) / 60000L);
}
/** 以微秒的形式赋值给一个Calendar实例
* @param l 用来表示时间的长整型数据
*/
public static void setCalendar(long l) {
CALENDAR.clear();
CALENDAR.setTimeInMillis(l);
}
/** 以日期的形式赋值给某Calendar
* @param date 指定日期
*/
public static void setCalendar(Date date) {
CALENDAR.clear();
CALENDAR.setTime(date);
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某年
*/
public static int getYear() {
return CALENDAR.get(1);
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某月
*/
public static int getMonth() {
return CALENDAR.get(2) + 1;
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某天
*/
public static int getDay() {
return CALENDAR.get(5);
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某小时
*/
public static int getHour() {
return CALENDAR.get(11);
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某分钟
*/
public static int getMinute() {
return CALENDAR.get(12);
}
/** 在此之前要由一个Calendar实例的存在
* @return 返回某秒
*/
public static int getSecond() {
return CALENDAR.get(13);
}
}
分享到:
相关推荐
初步设计文件是设计单位提交的核心材料,它需要包含多个方面的内容,如设计书、资格证明、时间与费用估算、系统设计方案、软件功能说明书、项目管理计划及运行建议等。所有这些资料必须是真实可靠的,且要全面地、...
本文将深入探讨标题为“电信设备-使用分时双工手机系统中计算最佳槽对信元分派的方法及系统”的主题,基于提供的描述和相关文件名,我们主要关注的是如何在TDD系统中优化信元分配以提升通信效率和系统性能。...
3. 结构体与共用体:结构体和共用体是C语言中复杂数据类型的代表,系统会讲解如何定义和使用这两种类型,以及它们在内存中的存储方式。 4. 文件操作:考生需要了解如何在C语言中进行文件的读写操作,包括打开、关闭...
然而,在20世纪80年代中期,尽管计算格式和数值方法取得了显著进步,网格生成技术却并未跟上步伐。因此,从那时起,网格生成技术的研究受到了全球计算流体和工业界的高度重视。 进入90年代,非结构网格和自适应...
本研究提出的实时动态自适应仲裁器,通过复杂的逻辑判断和动态调整,能根据当前系统负载和任务需求灵活地分配总线带宽,防止处理器的“饥饿”现象,即长时间无法获得资源的情况,从而保障了所有处理器的公平访问权利...
- **作用**: 是操作系统对外的接口,是用户级程序取得操作系统服务的唯一途径。 11. **特权指令** - **定义**: 指指令系统中这样一些指令,如启动设备指令、设置时钟指令、中断屏蔽指令和清内存指令等,这些指令...
室外消防给水系统是保障公共安全的重要组成部分,主要用于在火灾发生时为消防设备提供水源,以控制火势并进行灭火。以下将详细解释这个系统的关键知识点。 首先,室外消防给水系统的任务是确保通过室外消火栓为消防...
1. **规范化记录**:系统提供统一的记录模板,确保信息的标准化输入。 2. **灵活的字段设置**:用户可以根据实际需要调整表格中的字段,以适应不同的记录需求。 3. **高效的查询功能**:支持多条件组合查询,可以...
国内外交通信息平台的研究现状是当前智能交通系统的热点话题。美国的 iFlorida 工程和 GCM GATEWAY 旅行信息系统是该领域的代表性工程。iFlorida 工程的主要目标是扩展和集成现有的数据采集和监视系统,收集及共享...
综上所述,DS18B20是一款高效且易于使用的温度传感器,通过深入了解其工作原理和编程方法,开发者能够快速构建起自己的温度测量系统,满足各种应用场景的需求。希望本教程能为你的学习和实践带来启示,助你在IT领域...
【C语言二级考试系统】是针对计算机二级C语言考试设计的一款笔试模拟系统,它提供了丰富的模拟试题,帮助考生熟悉考试环境,提升应试能力。在准备C语言二级考试的过程中,理解并掌握C语言的基本概念、语法结构以及...
为了有效地利用模拟考试系统,考生应定期进行全真模拟测试,按照考试规定的时间限制完成题目,这样可以提高应对压力的能力,并调整答题速度。同时,系统可能还提供了答案解析和评分标准,帮助考生理解错误所在,从而...
如果 Linux 在嵌入式应用中取得了成功,那么将来就会对台式机市场形成外围的压力。随着 PC 机的控制与网络能力逐步融合到家电和传统设备中去,这一天一定会出现的。微软以下压上的策略(用 Win9x 的市场优势推 Win ...
【某网站统计SA网盟推广优化介绍】 在互联网营销领域,有效的数据分析对于优化推广效果至关重要。...通过深入理解和充分利用这些数据,企业可以不断改进其在线策略,从而在竞争激烈的市场中取得优势。
【计算机二级考试C语言复习指南】 C语言是计算机科学领域中一种基础且强大的编程语言,对于准备参加计算机二级考试的考生来...通过系统性的学习和反复的练习,相信考生能够在计算机二级考试C语言部分取得理想的成绩。
- 测试方法:了解白盒测试和黑盒测试,能设计测试用例并实施单元测试、集成测试和系统测试。 - 调试技巧:掌握静态和动态调试的基本技巧。 4. **数据库设计基础**: - 数据库基本概念:理解数据库、数据库管理...
3. 时钟中断处理:时钟中断服务执行 do_timer() 函数,主要判断当前进程时间片是否用完,如果用完则执行 schedule() 重新调度。如果中断时当前进程正在内核态执行,则不能进行切换。 4. 信号处理:信号处理函数想要...