(java 功能篇)之 java时间工具类
来源:互联网 发布:哪些数据库是免费的 编辑:程序博客网 时间:2024/06/06 02:21
package com.emc.util;/* * Copyright sunflower * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;/** * 日期时间工具类 * * @author sunflower * */public class DateUtils {private static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");/** * 获得当前日期时间 * <p> * 日期时间格式yyyy-MM-dd HH:mm:ss * * @return */public static String currentDatetime() {return datetimeFormat.format(now());}/** * 格式化日期时间 * <p> * 日期时间格式yyyy-MM-dd HH:mm:ss * * @return */public static String formatDatetime(Date date) {return datetimeFormat.format(date);}/** * 格式化日期时间 * * @param date * @param pattern * 格式化模式,详见{@link SimpleDateFormat}构造器 * <code>SimpleDateFormat(String pattern)</code> * @return */public static String formatDatetime(Date date, String pattern) {SimpleDateFormat customFormat = (SimpleDateFormat) datetimeFormat.clone();customFormat.applyPattern(pattern);return customFormat.format(date);}/** * 获得当前日期 * <p> * 日期格式yyyy-MM-dd * * @return */public static String currentDate() {return dateFormat.format(now());}/** * 格式化日期 * <p> * 日期格式yyyy-MM-dd * * @return */public static String formatDate(Date date) {return dateFormat.format(date);}/** * 获得当前时间 * <p> * 时间格式HH:mm:ss * * @return */public static String currentTime() {return timeFormat.format(now());}/** * 格式化时间 * <p> * 时间格式HH:mm:ss * * @return */public static String formatTime(Date date) {return timeFormat.format(date);}/** * 获得当前时间的<code>java.util.Date</code>对象 * * @return */public static Date now() {return new Date();}public static Calendar calendar() {Calendar cal = GregorianCalendar.getInstance(Locale.CHINESE);cal.setFirstDayOfWeek(Calendar.MONDAY);return cal;}/** * 获得当前时间的毫秒数 * <p> * 详见{@link System#currentTimeMillis()} * * @return */public static long millis() {return System.currentTimeMillis();}/** * * 获得当前Chinese月份 * * @return */public static int month() {return calendar().get(Calendar.MONTH) + 1;}/** * 获得月份中的第几天 * * @return */public static int dayOfMonth() {return calendar().get(Calendar.DAY_OF_MONTH);}/** * 今天是星期的第几天 * * @return */public static int dayOfWeek() {return calendar().get(Calendar.DAY_OF_WEEK);}/** * 今天是年中的第几天 * * @return */public static int dayOfYear() {return calendar().get(Calendar.DAY_OF_YEAR);}/** *判断原日期是否在目标日期之前 * * @param src * @param dst * @return */public static boolean isBefore(Date src, Date dst) {return src.before(dst);}/** *判断原日期是否在目标日期之后 * * @param src * @param dst * @return */public static boolean isAfter(Date src, Date dst) {return src.after(dst);}/** *判断两日期是否相同 * * @param date1 * @param date2 * @return */public static boolean isEqual(Date date1, Date date2) {return date1.compareTo(date2) == 0;}/** * 判断某个日期是否在某个日期范围 * * @param beginDate * 日期范围开始 * @param endDate * 日期范围结束 * @param src * 需要判断的日期 * @return */public static boolean between(Date beginDate, Date endDate, Date src) {return beginDate.before(src) && endDate.after(src);}/** * 获得当前月的最后一天 * <p> * HH:mm:ss为0,毫秒为999 * * @return */public static Date lastDayOfMonth() {Calendar cal = calendar();cal.set(Calendar.DAY_OF_MONTH, 0); // M月置零cal.set(Calendar.HOUR_OF_DAY, 0);// H置零cal.set(Calendar.MINUTE, 0);// m置零cal.set(Calendar.SECOND, 0);// s置零cal.set(Calendar.MILLISECOND, 0);// S置零cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);// 月份+1cal.set(Calendar.MILLISECOND, -1);// 毫秒-1return cal.getTime();}/** * 获得当前月的第一天 * <p> * HH:mm:ss SS为零 * * @return */public static Date firstDayOfMonth() {Calendar cal = calendar();cal.set(Calendar.DAY_OF_MONTH, 1); // M月置1cal.set(Calendar.HOUR_OF_DAY, 0);// H置零cal.set(Calendar.MINUTE, 0);// m置零cal.set(Calendar.SECOND, 0);// s置零cal.set(Calendar.MILLISECOND, 0);// S置零return cal.getTime();}private static Date weekDay(int week) {Calendar cal = calendar();cal.set(Calendar.DAY_OF_WEEK, week);return cal.getTime();}/** * 获得周五日期 * <p> * 注:日历工厂方法{@link #calendar()}设置类每个星期的第一天为Monday,US等每星期第一天为sunday * * @return */public static Date friday() {return weekDay(Calendar.FRIDAY);}/** * 获得周六日期 * <p> * 注:日历工厂方法{@link #calendar()}设置类每个星期的第一天为Monday,US等每星期第一天为sunday * * @return */public static Date saturday() {return weekDay(Calendar.SATURDAY);}/** * 获得周日日期 * <p> * 注:日历工厂方法{@link #calendar()}设置类每个星期的第一天为Monday,US等每星期第一天为sunday * * @return */public static Date sunday() {return weekDay(Calendar.SUNDAY);}/** * 将字符串日期时间转换成java.util.Date类型 * <p> * 日期时间格式yyyy-MM-dd HH:mm:ss * * @param datetime * @return */public static Date parseDatetime(String datetime) throws ParseException {return datetimeFormat.parse(datetime);}/** * 将字符串日期转换成java.util.Date类型 *<p> * 日期时间格式yyyy-MM-dd * * @param date * @return * @throws ParseException */public static Date parseDate(String date) throws ParseException {return dateFormat.parse(date);}/** * 将字符串日期转换成java.util.Date类型 *<p> * 时间格式 HH:mm:ss * * @param time * @return * @throws ParseException */public static Date parseTime(String time) throws ParseException {return timeFormat.parse(time);}/** * 根据自定义pattern将字符串日期转换成java.util.Date类型 * * @param datetime * @param pattern * @return * @throws ParseException */public static Date parseDatetime(String datetime, String pattern)throws ParseException {SimpleDateFormat format = (SimpleDateFormat) datetimeFormat.clone();format.applyPattern(pattern);return format.parse(datetime);}}
0 0
- (java 功能篇)之 java时间工具类
- java时间工具类之SimpleDateFormat
- java时间工具类
- java 时间工具类
- Java时间工具类
- Java时间工具类
- 时间工具类--java
- Java时间工具类
- java 时间工具类
- java 时间类 工具
- Java时间工具类
- 时间工具类java
- Java时间工具类
- JAVA 时间工具类
- #.java 时间工具类
- java 时间工具类
- [Java]时间工具类
- JAVA时间处理工具类
- LeetCode | Remove Duplicates from Sorted List(删除链表中重复的数据)
- 萌萌哒
- 使用mybatis generator自动生成代码步骤
- C++IO之文件操作
- 8.JavaWeb基础 DAO
- (java 功能篇)之 java时间工具类
- Crittercism: 在MongoDB上实现每天数十亿次请求
- Trace、Debug和TraceSource的使用以及日志设计
- 导出xml,excel文件,导入excel文件
- android知识点:duplicateParentState属性
- android生命周期详解
- 导入一个Android 项目后,注释中文乱码
- Oracle错误表
- 方面的饱和度舒服了看电视费