package com.atmu.report.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import org.apache.log4j.Logger;
public class Util {
private static Logger logger=Logger.getLogger(Util.class);
/**
* 返回子byte数组
*/
public static byte[] subByte(byte[] b,int begin,int end){
byte[] ret=new byte[end-begin];
for(int i=0;i<ret.length;i++)
ret[i]=b[begin+i];
return ret;
}
/**
* 合并两个数组
* @param b1
* @param b2
* @return
*/
public static byte[] mergeByte(byte[] b1,byte[] b2){
if (b1==null)
return b2;
if (b2==null)
return b1;
byte[] ret=new byte[b1.length+b2.length];
System.arraycopy(b1, 0, ret, 0, b1.length);
System.arraycopy(b2, 0, ret, b1.length, b2.length);
return ret;
}
/**
*
* @param b
* @param startpos
* @param delimiter
* @return 指定分隔符的数组
*/
public static byte[] subByteDelimiter(byte[] b,int startpos,char delimiter){
byte[] ret=new byte[1024];
int i=0;
for(;i<1024;i++){
if(b[startpos+i]==delimiter)
break;
else{
ret[i]=b[startpos+i];
}
}
ret=subByte(ret,0,i);
return ret;
}
/**
*
* @param s:#{A41} + #{A42} - #{A43}
* @param delimiter1 {
* @param delimiter2 }
* @return
*/
public static String[] DemarkString(String s,char delimiter1,char delimiter2){
String[] ret=null;
String[] temp=s.split("#");
ret=new String[temp.length-1];
String item="";
for(int i=1;i<=ret.length;i++){
item=temp[i];
//Log.info(item);
ret[i-1]=item.substring(item.indexOf(delimiter1)+1, item.indexOf(delimiter2));
}
return ret;
}
/**
*
* @param date1
* @param date2
* @return date2-date1
* @throws ParseException
*/
public static long gettimeDiff(String startDate,String endDate) throws ParseException{
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMddHHmmss");
Date d1=sd.parse(startDate);
Date d2=sd.parse(endDate);
return d2.getTime()-d1.getTime();
}
/**
*
* @param date
* @param format
* @return 指定格式的日期字符串形式
* @throws Exception
*/
public static String format(String date,String format_source,String format_target) throws Exception{
SimpleDateFormat sd=new SimpleDateFormat(format_source);
Date d1=sd.parse(date);
sd=new SimpleDateFormat(format_target);
return sd.format(d1);
}
public static void main(String[] args){
/* String s="abcdef|eaac";
byte[] b=s.getBytes();
String ss=new String(subByteDelimiter(b,1,'|'));
String[] ssa=DemarkString("#{A41}",'{','}');
for(String sss:ssa)
System.out.println(sss);*/
System.out.println(getDate("19960229",-1,2));
/*String date1="20091207124900";
String date2="20091207124901";
try {
logger.info(gettimeDiff(date1,getCurrentDate()+getCurrentTime()));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logger.info("["+FomatNumber(2,2)+"]");*/
}
/**
*
* @return 系统日期
*/
public static String getCurrentDate(){
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");
return sd.format(new Date());
}
public static String getYesterday(){
Calendar ca=new GregorianCalendar();
ca.add(Calendar.DAY_OF_MONTH, -1);
return getDateFromCa(ca);
/*Date d = ca.getTime();
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");
return sd.format(d);*/
}
/**
*
* @param referDate 20100120
* @param datediff
* @return 根据指定日期与差别天数得到的新日期
*/
public static String getDate(String referDate,int datediff,int type){
try{
int day=Integer.parseInt(referDate.substring(6));
int month=Integer.parseInt(referDate.substring(4,6));
int year=Integer.parseInt(referDate.substring(0,4));
Calendar ca=new GregorianCalendar(year,month-1,day);
switch(type){
case 0:
ca.add(Calendar.DAY_OF_MONTH, datediff);
break;
case 1:
ca.add(Calendar.MONTH, datediff);
break;
case 2:
ca.add(Calendar.YEAR, datediff);
case 3:
ca.add(Calendar.WEEK_OF_YEAR, datediff);
break;
}
return getDateFromCa(ca);
}catch(Exception e){
logger.warn("",e);
}
return null;
}
public static String getDateFromCa(Calendar ca){
Date d = ca.getTime();
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");
return sd.format(d);
}
public static String getCurrentTime(){
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMddHHmmss");
return sd.format(new Date()).substring(8);
}
public static String getFullCurrentTime(){
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMddHHmmssSSS");
return sd.format(new Date());
}
public static long getlongtime(){
return (new Date()).getTime();
}
/**
* 格式化字符串,右补空格
* @param s
* @param width
* @return
*/
public static String formateString(String s,int width){
String format="%1$-"+width+"s";
return String.format(format, s);
}
/**
* 格式化字符串,左补空格
* @param s
* @param width
* @return
*/
public static String RfillBlank(String s,int width){
String format="%1$"+width+"s";
return String.format(format, s);
}
public static String getPartitionKey(){
SimpleDateFormat sd=new SimpleDateFormat("yyyyMM");
return sd.format(new Date());
}
/**
* 测试用
* @param map
*/
public static void writeObject(Object request,String filename) {
ObjectOutputStream out;
try {
out = new ObjectOutputStream(new FileOutputStream("data/"+filename+"-request.ser"));
out.writeObject(request);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 测试用
* @param map
*/
public static Object readObject(String filename) {
ObjectInputStream in;
File f = new File("data/"+filename+"-request.ser");
if (!f.exists())
return null;
try {
in = new ObjectInputStream(new FileInputStream("data/"+filename+"-request.ser"));
Object ret = in.readObject();
in.close();
return ret;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 从文本生成hashmap对象
* @return
*/
public static HashMap readFromText(){
Properties p=new Properties();
HashMap ret=new HashMap();
try {
p.load(new FileInputStream("test/hashmap.txt"));
} catch (Exception e) {
logger.warn("",e);
}
ret.putAll(p);
return ret;
}
/**
* /**
* 填充数组到指定长度
* @param ret
* @param len
*/
public static byte[] fillByteLen(byte[] ret, int len) {
byte[] subbyte=null;
if(ret!=null&&len<ret.length){
logger.warn("param:ret"+new String(ret));
logger.warn("param:len"+len);
return subByte(ret,0,len);
}
try{
if(ret!=null){
subbyte=new byte[len-ret.length];
}else{
subbyte=new byte[len];
}
for (int i = 0; i < subbyte.length; i++) {
subbyte[i] = 0x20;
}
ret=mergeByte(ret,subbyte);
}catch(Exception e){
logger.warn("Error:",e);
logger.warn("param:ret"+new String(ret));
logger.warn("param:len"+len);
}
return ret;
}
//String.format("%03d",cmds[5].getBytes().length)
/**
* 格式化数字,左补0
*/
public static String FomatNumber(int width,int data){
String format="%0"+width+"d";
return String.format(format, data);
}
/**
* 判断list为空
* @param l
* @return
*/
public static boolean AssertListEmpty(List l) {
if(l==null||l.size()==0){
return true;
}else{
return false;
}
}
}
分享到:
相关推荐
标题 "spring 3.0日常项目用到的jar" 提供了我们正在讨论的是与Spring框架3.0版本相关的库,这些库在日常项目开发中是必不可少的。描述中提到了几个关键的模块,包括`commons-logging.jar`以及Spring框架的多个组件...
总结来说,util模块中的util.deprecate、util.format和util.inspect是Node.js开发中经常用到的工具函数,它们帮助开发者处理弃用警告、格式化输出以及对象信息的可视化。通过这些工具函数,开发者可以编写更加健壮、...
参考 的开源代码,修改了一部分,方便以后用到项目中去。 效果图 springboot-cors Spring Boot 结合 CORS 在服务端解决 AJAX 跨域问题的 demo。 1.使用 CorsConfiguration 配置 @Configuration public class ...
2. **时间戳记录**:记录按下按钮的时间,需要用到系统当前时间的获取和转换。大多数编程语言都有内置的函数来获取当前时间,例如在Python中可以使用`datetime.datetime.now()`,在Java中则是`java.util.Date`类。...
"util:各类项目中可能用到的方法"是一个集合了各种实用函数的资源库,它旨在为开发者提供方便,帮助他们在不同项目中快速实现常见功能。这个库特别强调了使用ES6和ES7(即ES2015和ES2016)的新特性,这些新特性极大...
1. **Java.lang**: 这是Java平台中最基础的包,包含了所有Java程序都会用到的基本类,如`String`、`Integer`、`Math`等。`Math`类提供了许多数学计算的静态方法,如求平方根、最大值、最小值等。`System`类包含了与...
Java支持多语言环境,通过`java.util.ResourceBundle`和`java.text.MessageFormat`类实现国际化。资源文件(如messages.properties)用于存储不同语言的文本,程序根据用户的语言偏好加载相应的文件。 8. **邮件...
10. **slf4j-api.jar**和相应的实现库(如slf4j-log4j12.jar):Simple Logging Facade for Java,提供一个简单的接口来调用各种日志框架,如log4j、java.util.logging等。 11. **mysql-connector-java.jar**(或...
2. slf4j-api-x.y.z.jar 和 slf4j-simple-x.y.z.jar:SLF4J(Simple Logging Facade for Java)是一个日志门面,为各种日志框架提供一个简单的抽象层,如Log4j、java.util.logging、Logback等。slf4j-api是SLF4J的...
6. **commons-logging-1.1.1.jar**:Apache Commons Logging是日志记录的抽象层,允许开发者选择底层的日志实现,如log4j或java.util.logging。在处理JSON过程中,如果遇到错误或需要调试,日志记录会非常有用。 7....
在DWR中, Commons Logging用于记录调试信息、错误和其他与DWR相关的日志事件。通过这个库,开发者可以根据项目需求调整日志级别和输出方式。 最后,`dwr.xml` 是DWR的配置文件,用于定义哪些Java类和方法可以被...
`java.util.logging`或`log4j`等日志框架可以用来记录上传过程中的信息和错误。Java的`try-catch-finally`语句块用于捕获和处理可能出现的异常,确保资源得到正确释放。 最后,如果这个工具类设计为可配置,那么它...
对于多线程和并发处理,工具类可能包含线程安全的数据结构,如`java.util.concurrent`包下的类,或者提供线程池管理、定时任务执行等功能。 9. **异常处理**: 工具类可能提供通用的异常捕获和转换方法,以便在...
在处理JSON时,可能会遇到需要记录日志的情况,这个库提供了统一的接口,方便开发者选择合适的日志框架,如Log4j或java.util.logging。 以上JAR包组合在一起,为Java开发人员提供了一个完整的JSON处理环境,从解析...
在Java 8之前,日期和时间的处理主要依赖`java.util.Date`和`java.util.Calendar`类,但这两个类的设计并不理想,存在一些不方便和效率低下的问题。因此,Java 8引入了新的`java.time`包,其中包括`LocalDate`、`...
1. **基础工具类**:Common类库中往往会有基础的工具类,如`StringUtil`用于字符串操作,`DateTimeUtil`处理日期时间,`IOUtil`处理文件和目录操作。这些工具类提供了一系列静态方法,方便在项目中调用,比如字符串...
这个"Java 删除项目里面的注释所用到的包.zip"可能包含了一个或多个工具或库,专门用于自动化删除Java源代码中的注释。在进行这类操作时,需要注意一些关键点以确保代码质量和安全性。 首先,让我们了解一下为什么...
在Android开发中,工具类是开发者经常会用到的辅助代码集合,它们可以帮助我们高效地处理各种常见任务。本文将深入探讨“android各种工具类”这一主题,包括文件操作、日期处理、图片处理、系统服务利用、网络通信...
- **日志记录**:为了调试和问题排查,工具类可能整合了如Log4j或Java内置的`java.util.logging.Logger`来进行日志输出。 - **元数据处理**:对于视频文件,可能需要解析或设置元数据,如编码、分辨率、时长等,这...
假设我们有一个包含1000条记录的列表,我们需要将其按照每页10条记录进行分页展示。我们可以这样使用 `Pagination` 类: ```java List data = ...; // 假设data是包含1000条记录的列表 Pagination pagination = new...