`

时间工具类

    博客分类:
  • j2se
 
阅读更多

/*
 * 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时间工具类方法封装

    基于Java语言编写的Spring Boot时间工具类方法封装,主要方法如下:根据日期获取该日期内24小时的整点时刻、获取当月的 天数、根据 年、月 获取对应的月份 的 天数、根据指定日期得获取对应月份的所有日期的每日结束...

    java日期时间工具类超级全

    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时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    java操作时间工具类

    Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...

    java时间工具类,基本上全面的包括常用的关于时间的处理

    Java时间工具类是Java开发中不可或缺的一部分,它们提供了一系列方便的方法来处理日期和时间,使得开发者可以更加高效地进行时间相关的操作。在这个简单的DateUtil.java工具类中,我们可以期待找到一些基本但实用的...

    java最全时间工具类,针对年月日周的操作

    java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等

    java时间工具类

    java 时间 datatime 工具类

    java 时间工具类 java 时间工具类java 时间工具类java 时间工具类

    java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 java 时间工具类java 时间工具类java 时间工具类java 时间工具类 ...

    iOS时间工具类(非常好用)

    `JFDate` 类库正是一个针对iOS平台的高效、全面的时间工具类,它由一位有多年项目经验的开发者精心封装,旨在简化时间相关的操作,满足大部分开发者在实际工作中遇到的需求。 `JFDate` 针对`NSDate`进行了扩展,...

    Java时间工具类

    Java对时间进行操作的工具类,包括各种时间格式转化的方法以及一些时间比较登方法。

    java操作日期时间工具类

    在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。

    java 时间工具类 java 时间工具类

    java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类java 时间工具类 java 时间工具类

    java日期,时间工具类

    各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    时间工具类 DateUtils

    在Java编程语言中,时间工具类是用于处理日期和时间操作的重要工具,它们极大地简化了开发者对日期和时间的操作。本篇文章将详细讲解基于提供的"时间工具类 DateUtils"的知识点,包括DateUtils的主要功能、如何使用...

    UTC.zip_UTC long_时间工具类

    在给定的"UTC.zip_UTC long_时间工具类"压缩包中,包含了一个名为"UTC.java"的文件,它很可能是一个自定义的时间工具类,用于处理UTC时间和不同数据类型之间的转换。 这个"UTC.java"文件可能提供了以下几种功能: ...

    格式化时间工具类

    "格式化时间工具类"通常是指一个自定义的类,它封装了Java的日期时间处理方法,以便更方便地进行日期格式化、解析和比较。在这个场景下,`TimeFormatUtil.java`文件很可能就是这样一个工具类。 Java标准库中提供了`...

Global site tag (gtag.js) - Google Analytics