- 浏览: 1048230 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
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;
}
}
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;
}
}
发表评论
-
20180222积累
2018-02-22 09:34 4781. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 465临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 485git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 755android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2159获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 725一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 382我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2988开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5630Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1076在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 474JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1059java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 1988Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 703第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 428Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 594java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1130在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1040在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
[工具类] 获得汉字拼音首字母的java工具类.java.txt [工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的...
总的来说,`RabbitmqUtil`是一个强大的Java工具类,它简化了RabbitMQ的使用,使得开发者能更专注于业务逻辑,而不是底层的消息传递细节。只需根据自己的RabbitMQ服务器配置调整初始化参数,就可以轻松地在项目中集成...
本资源名为“Java工具类合集”,显然是一份集合了多种功能的Java工具类库,可能包含了一系列开源框架中的实用工具类。 首先,我们可以从“mysql版本”这个标签推测,这个合集中可能包含了与MySQL数据库交互相关的...
以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理数据库连接的一种机制,它能有效地复用已存在的数据库连接,避免频繁创建和关闭连接导致的性能开销。常见的...
使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
Java工具类是编程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在Java中,工具类通常包含了各种通用的方法,适用于多种场景,减少了重复编码的工作。以下是一些主要的Java...
Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...
本资源提供的五个Java工具类涵盖了日期时间处理、数字格式化、参数操作、字符串操作以及数据校验等多个方面,这对于开发人员来说是非常实用的。下面我们将对每个工具类进行详细解释。 1. **日期时间工具类**: 这...
本资源提供的"JAVA工具类"整合了XML处理、JSON操作、MD5加密以及加解密功能,对提高开发效率大有裨益。 1. **XML处理**: - DOM解析:DOM(Document Object Model)是一种将XML文档映射为树形结构的方法,通过它...
1.[工具类] 读取、打印输出、保存xml .java 2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用...
标题提到的"50个左右的JAVA工具类,相对比较全"表明这是一个集合了大量常用工具方法的资源包。描述中指出,这些工具类是开发者多年工作经验的结晶,涵盖了一些常见的需求,但可能并不完美,可能存在一些遗漏,欢迎...
JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与...
本压缩包提供了27个常用的Java工具类,涵盖了编码解码、安全加密、日期时间处理、文件操作等多个领域。以下是这些工具类的详细介绍: 1. **Base64Util**:这是一个用于Base64编码和解码的工具类。Base64是一种广泛...
这是本人在公司培训时做的一个PPT文档,介绍了Java常用的工具类
4. **Java工具类**:在Java开发中,工具类通常是一些静态方法集合,这些方法解决特定的问题或提供通用功能。Ut类可能是这样一个工具类,它可能包含了如日期时间处理、集合操作、IO流操作等多种实用方法。 5. **基础...
java抓取网页java工具类java抓取网页java工具类
以上只是Java工具类的一部分,这些工具类的使用能极大地提高开发效率,减少代码重复,使代码更加简洁和易于维护。通过这些工具类,开发者能够快速地处理各种日常任务,将精力集中在核心业务逻辑上。