/*
* Copyright (c) 2009, 2010, 2011, 2012, 2013 tinygao
*
* 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.
*/
package jdk.date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.lang.StringUtils;
/**
* @author tingao
* 2013-1-5
*/
public final class DateUtils {
private static Logger log = Logger.getLogger(DateUtils.class.getName());
private static ThreadLocal<DateFormat> timeMap = new ThreadLocal<DateFormat>();
private static final String dateFormat = "yyyy-MM-dd hh:mm:ss";
/**
* 将时间转换成一定格式的日期字符串
* 如果dateFromat为空,就按照默认的格式输出
* @param date 日期
* @param dateFormat 转成字符串日期格式
* @return dateFormt格式的日期
* 2013-1-5 上午11:04:03
*/
public static String formatDate(Date date, String dateFormat) {
if(StringUtils.isEmpty(dateFormat)) {
dateFormat = DateUtils.dateFormat;
}
String result = "";
DateFormat dt = instanceDateFormat(dateFormat);
result = dt.format(date);
return result;
}
/**
* @param str
* @param dateFormat
* @return
* 2013-1-5 上午11:06:26
*/
public static Date parse(String str, String dateFormat) {
if(StringUtils.isEmpty(dateFormat)) {
dateFormat = DateUtils.dateFormat;
}
try {
DateFormat dt = instanceDateFormat(dateFormat);
return dt.parse(str);
} catch (ParseException e) {
log.log(Level.SEVERE, "从字符串转时间出错,详情:"+e.toString());
}
return null;
}
public static Date parse(String str) {
return parse(str, null);
}
public static String formatDate(Date date) {
return formatDate(date, null);
}
private static DateFormat instanceDateFormat(String dateFormat) {
DateFormat dt = timeMap.get();
if(dt == null) {
dt = new SimpleDateFormat(dateFormat);
timeMap.set(dt);
}
return dt;
}
//test
/*static class ThreadA implements Runnable {
int i = 0;
@Override
public void run() {
while(i++ < 100) {
String date = formatDate(new Date(), "yyyy-MM-dd");
System.out.println("线程A"+i+":" + date);
}
}
}
static class ThreadB implements Runnable {
int i = 0;
@Override
public void run() {
while(i++ < 100) {
String date = formatDate(new Date(), "yyyy-MM-dd hh:mm");
System.out.println("线程B"+i+":" + date);
}
}
}
public static void main(String[] args) {
String str = formatDate(new Date());
System.out.println(str);
Date date = parse("2013-01-05 11:11:16");
System.out.println(date);
ThreadA threadA = new ThreadA();
Thread tha = new Thread(threadA);
tha.start();
ThreadB threadB = new ThreadB();
Thread thb = new Thread(threadB);
thb.start();
}*/
}
分享到:
相关推荐
基于Java语言编写的Spring Boot时间工具类方法封装,主要方法如下:根据日期获取该日期内24小时的整点时刻、获取当月的 天数、根据 年、月 获取对应的月份 的 天数、根据指定日期得获取对应月份的所有日期的每日结束...
java日期时间工具类超级全。其中包含:获得当前日期 yyyy-MM-dd HH:mm:ss;获取系统当前时间戳;获取当前日期 yy-MM-dd;得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期为yyyy-MM-dd HH:mm:ss.SSS格式的...
封装好的时间工具类, 包括时间格式转换,获取今天周几,一月几天。
本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...
Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...
Java时间工具类是Java开发中不可或缺的一部分,它们提供了一系列方便的方法来处理日期和时间,使得开发者可以更加高效地进行时间相关的操作。在这个简单的DateUtil.java工具类中,我们可以期待找到一些基本但实用的...
java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等
java 时间 datatime 工具类
java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 ...
`JFDate` 类库正是一个针对iOS平台的高效、全面的时间工具类,它由一位有多年项目经验的开发者精心封装,旨在简化时间相关的操作,满足大部分开发者在实际工作中遇到的需求。 `JFDate` 针对`NSDate`进行了扩展,...
Java对时间进行操作的工具类,包括各种时间格式转化的方法以及一些时间比较登方法。
在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。
java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类
各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
在Java编程语言中,时间工具类是用于处理日期和时间操作的重要工具,它们极大地简化了开发者对日期和时间的操作。本篇文章将详细讲解基于提供的"时间工具类 DateUtils"的知识点,包括DateUtils的主要功能、如何使用...
在给定的"UTC.zip_UTC long_时间工具类"压缩包中,包含了一个名为"UTC.java"的文件,它很可能是一个自定义的时间工具类,用于处理UTC时间和不同数据类型之间的转换。 这个"UTC.java"文件可能提供了以下几种功能: ...
"格式化时间工具类"通常是指一个自定义的类,它封装了Java的日期时间处理方法,以便更方便地进行日期格式化、解析和比较。在这个场景下,`TimeFormatUtil.java`文件很可能就是这样一个工具类。 Java标准库中提供了`...