`
weitao1026
  • 浏览: 1048230 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java的工具类

阅读更多
package com.mintcode.jkys.util;

import hirondelle.date4j.DateTime;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;

public abstract class DateUtil {

public static final String PATTERN_YEAR2MONTH = "yyyyMM";
public static final String PATTERN_YEAR2DAY = "yyyyMMdd";
public static final String PATTERN_YEAR2SECOND = "yyyyMMddHHmmss";
public static final String PATTERN_YEAR2MILLISECOND = "yyyyMMddHHmmssSSS";
public static final String PATTERN_NORMAL_YEAR2SECOND = "yyyy-MM-dd HH:mm:ss";
public static final String PATTERN_NORMAL_YEAR2MILLISECOND = "yyyy-MM-dd HH:mm:ss.SSS";

protected static ThreadLocal<Map<String, DateFormat>> formatLocal = new ThreadLocal<Map<String, DateFormat>>();

public static final int SECONDS_IN_DAY = 60 * 60 * 24;
public static final long MILLIS_IN_DAY = 1000L * SECONDS_IN_DAY;

    public static boolean isSameDayOfMillis(final long ms1, final long ms2) {
        final long interval = ms1 - ms2;
        return interval < MILLIS_IN_DAY
                && interval > -1L * MILLIS_IN_DAY
                && toDay(ms1) == toDay(ms2);
    }

    private static long toDay(long millis) {
        return (millis + TimeZone.getDefault().getOffset(millis)) / MILLIS_IN_DAY;
    }
   
/**
* 获取pattern样式的DateFormat 线程安全
*
* @param pattern
* @return
*/
protected static DateFormat getFormat(String pattern) {
Map<String, DateFormat> formatMap = formatLocal.get();

if (formatMap == null) {
formatMap = new HashMap<String, DateFormat>();
formatLocal.set(formatMap);
}

DateFormat format = formatMap.get(pattern);

if (format == null) {
format = new SimpleDateFormat(pattern);
formatMap.put(pattern, format);
}

return format;
}

/**
* 校验
*
* @param dateStr
* @param pattern
* @return
*/
public static boolean valid(String dateStr, String pattern) {
try {
getFormat(pattern).parse(dateStr);
} catch (ParseException e) {
return false;
}
return true;
}

/**
* 解析日期字符串
*
* @param dateStr
* @param pattern
* @return
*/
public static Date parse(String dateStr, String pattern) {
if (dateStr == null) {
return null;
}
try {
return getFormat(pattern).parse(dateStr);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}

/**
* 格式化
*
* @param date
* @param pattern
* @return
*/
public static String format(Date date, String pattern) {
if (date == null) {
return null;
}
return getFormat(pattern).format(date);
}

/**
* 将时间转换成Long型
*
* @param date
* @return
*/
public static Long parseToLong(Date date, String pattern) {
return Long.valueOf(format(date, pattern));
}

/**
* 获取当前时间
*
* @return
*/
public static Date now() {
return new Date();
}

public static Long nowInMilliseconds() {
return System.currentTimeMillis();
}

public static Integer nowInSeconds() {
return (int) (System.currentTimeMillis() / 1000);
}


/**
* <pre>
* 返回给定日期在当前周里的索引, 1~7对应周一~周日
* </pre>
* @param date
* @return
*/
public static int getWeekDay(Date date) {
DateTime dateTime = DateTime.forInstant(date.getTime(), TimeZone.getDefault());
int i = dateTime.getWeekDay();
i --;
i = i == 0 ? 7 : i;
return i;
}
}
分享到:
评论

相关推荐

    30个java工具类

    [工具类] 获得汉字拼音首字母的java工具类.java.txt [工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的...

    Rabbitmq工具类,java工具类RabbitmqUtil

    总的来说,`RabbitmqUtil`是一个强大的Java工具类,它简化了RabbitMQ的使用,使得开发者能更专注于业务逻辑,而不是底层的消息传递细节。只需根据自己的RabbitMQ服务器配置调整初始化参数,就可以轻松地在项目中集成...

    Java工具类合集

    本资源名为“Java工具类合集”,显然是一份集合了多种功能的Java工具类库,可能包含了一系列开源框架中的实用工具类。 首先,我们可以从“mysql版本”这个标签推测,这个合集中可能包含了与MySQL数据库交互相关的...

    常用Java工具类

    以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理数据库连接的一种机制,它能有效地复用已存在的数据库连接,避免频繁创建和关闭连接导致的性能开销。常见的...

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    比较全的java工具类

    Java工具类是编程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在Java中,工具类通常包含了各种通用的方法,适用于多种场景,减少了重复编码的工作。以下是一些主要的Java...

    java工具类

    Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...

    Java工具类

    本资源提供的五个Java工具类涵盖了日期时间处理、数字格式化、参数操作、字符串操作以及数据校验等多个方面,这对于开发人员来说是非常实用的。下面我们将对每个工具类进行详细解释。 1. **日期时间工具类**: 这...

    JAVA工具类(整合,xml,json,MD5,加密解密)

    本资源提供的"JAVA工具类"整合了XML处理、JSON操作、MD5加密以及加解密功能,对提高开发效率大有裨益。 1. **XML处理**: - DOM解析:DOM(Document Object Model)是一种将XML文档映射为树形结构的方法,通过它...

    常用的java工具类

    1.[工具类] 读取、打印输出、保存xml .java 2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用...

    50个左右的JAVA工具类,相对比较全

    标题提到的"50个左右的JAVA工具类,相对比较全"表明这是一个集合了大量常用工具方法的资源包。描述中指出,这些工具类是开发者多年工作经验的结晶,涵盖了一些常见的需求,但可能并不完美,可能存在一些遗漏,欢迎...

    JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库

    JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与...

    27个java工具类

    本压缩包提供了27个常用的Java工具类,涵盖了编码解码、安全加密、日期时间处理、文件操作等多个领域。以下是这些工具类的详细介绍: 1. **Base64Util**:这是一个用于Base64编码和解码的工具类。Base64是一种广泛...

    Java工具类介绍

    这是本人在公司培训时做的一个PPT文档,介绍了Java常用的工具类

    Ut.rar_java 开发ut包_javaut demo_java工具_java工具类_基础工具

    4. **Java工具类**:在Java开发中,工具类通常是一些静态方法集合,这些方法解决特定的问题或提供通用功能。Ut类可能是这样一个工具类,它可能包含了如日期时间处理、集合操作、IO流操作等多种实用方法。 5. **基础...

    java抓取网页-java工具类

    java抓取网页java工具类java抓取网页java工具类

    java各种工具类-非常齐全

    以上只是Java工具类的一部分,这些工具类的使用能极大地提高开发效率,减少代码重复,使代码更加简洁和易于维护。通过这些工具类,开发者能够快速地处理各种日常任务,将精力集中在核心业务逻辑上。

Global site tag (gtag.js) - Google Analytics