Java中的转换:时间与字符串互转、字符串与Ascii互转、字节数组转十六进制、int转十六进制、double转十六进制、float转十六进制等操作
import java.text.SimpleDateFormat;
import java.util.Date;
public class DataConvert
{
/**
* 格式化时间返回字符串
* @param date
* @param fmt
* @return
*/
public static String dateToStr(Date date, String fmt)
{
if(date == null)
{
return null;
}
if(fmt == null)
{
fmt = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(fmt);
String retVal = sdf.format(date);
return retVal;
}
/**
* 时间字符串转成毫秒数
* @param date
* @param fmt
* @return
* @throws Exception
*/
public static long dateStrToMilliSec(String date, String fmt) throws Exception
{
if(date == null)
{
return 0;
}
if(fmt == null)
{
return 0;
}
SimpleDateFormat sdf = new SimpleDateFormat(fmt);
Date cDate = sdf.parse(date);
return cDate.getTime();
}
/**
* 字符串转Ascii
* @param str
* @return
*/
public static String strToAscii(String str)
{
if(str == null)
{
return "";
}
StringBuilder result = new StringBuilder("");
for(int i = 0; i < str.length(); i++)
{
char tmp = str.charAt(i);
int ascii = (int)tmp;
if(i < (str.length() - 1))
{
result.append(ascii).append(",");
}
else
{
result.append(ascii);
}
}
return result.toString();
}
/**
* Ascii转字符串
* @param asciiStr
* @return
*/
public static String asciiToStr(String asciiStr)
{
if(asciiStr == null)
{
return "";
}
StringBuilder result = new StringBuilder("");
String[] asciiArr = asciiStr.split(",");
for(int i = 0; i < asciiArr.length; i++)
{
char tmp = (char)Integer.parseInt(asciiArr[i]);
result.append(tmp);
}
return result.toString();
}
/**
* int类型转字节数组
* @param val
* @return byte[]
*/
public static byte[] intTobyteArr(int val)
{
byte[] buf = new byte[4];
if(val == 0)
{
return buf;
}
buf[0] = (byte)(val >>> 24);
buf[1] = (byte)(val >>> 16);
buf[2] = (byte)(val >>> 8);
buf[3] = (byte)(val & 0xFF);
return buf;
}
/**
* 数字转16进制字符串
* @param val
* @return String
*/
public static String NumberToHexStr(Number val)
{
if(val.getClass() == Double.class)
{
return doubleToHexStr(val.doubleValue());
}
else if(val.getClass() == Float.class)
{
return floatToHexStr(val.floatValue());
}
/*
* 大写%X则输出小写 a b
* 小写%x则输出小写 a b
* %02X 按照两位字符格式化输出
* 0x%02X 按照如0x00 0xFF 格式输出
*/
String retVal = String.format("%02X", val);
return retVal;
}
/**
* double类型转16进制
* @param val
* @return String
*/
private static String doubleToHexStr(double val)
{
long temp = Double.doubleToLongBits(val);
String retVal = String.format("%02X", temp);
return retVal;
}
/**
* float类型转16进制
* @param val
* @return String
*/
private static String floatToHexStr(float val)
{
int temp = Float.floatToIntBits(val);
String retVal = String.format("%02X", temp);
return retVal;
}
}