Java中的时间与字符串互转、字符串与Ascii互转、进制转换等

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;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值