📄 toolsutil.java
字号:
/*
* Copyright 2003-2005 the original author or authors.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.jdon.jivejdon.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import com.jdon.util.UtilDateTime;
/**
* tools for this project.
* @author <a href="mailto:banqJdon<AT>jdon.com">banq</a>
*
*/
public class ToolsUtil {
private static final long ROOT_PARENTMESSAGEID = 0;
private static final char[] zeroArray = "0000000000000000".toCharArray();
public static final String zeroPadString(String string, int length) {
if (string == null || string.length() > length) {
return string;
}
StringBuffer buf = new StringBuffer(length);
buf.append(zeroArray, 0, length - string.length()).append(string);
return buf.toString();
}
public static final String dateToMillis(long now) {
return zeroPadString(Long.toString(now), 15);
}
public static String getDateTimeDisp(String datetime) {
if ((datetime == null) || (datetime.equals("")))
return "";
DateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
;
long datel = Long.parseLong(datetime);
return formatter.format(new Date(datel));
}
public static Long getParentIDOfRoot() {
return new Long(ROOT_PARENTMESSAGEID);
}
public static boolean isRoot(Long parentID) {
if (parentID.longValue() == ROOT_PARENTMESSAGEID)
return true;
else
return false;
}
public static final String dateToMillis(Date date) {
return zeroPadString(Long.toString(date.getTime()), 15);
}
/**
* the String can be as the key of cache
* @param date
* @return a long string with no Hour/Minute/Mills
*/
public static String dateToNoMillis(Date date) {
//001184284800000
String s = dateToMillis(date);
StringBuffer sb = new StringBuffer(s.substring(0, 10));
sb.append("00000");
return sb.toString();
}
/** Converts a date String and a time String into a Date
* @param date The date String: YYYY-MM-DD
* @param time The time String: either HH:MM or HH:MM:SS
* @return A Date made from the date and time Strings
*/
public static java.util.Date toDate(String date, String time, String split) {
if (date == null || time == null)
return null;
String month;
String day;
String year;
String hour;
String minute;
String second;
int dateSlash1 = date.indexOf(split);
int dateSlash2 = date.lastIndexOf(split);
if (dateSlash1 <= 0 || dateSlash1 == dateSlash2)
return null;
int timeColon1 = time.indexOf(":");
int timeColon2 = time.lastIndexOf(":");
if (timeColon1 <= 0)
return null;
year = date.substring(0, dateSlash1);
month = date.substring(dateSlash1 + 1, dateSlash2);
day = date.substring(dateSlash2 + 1);
hour = time.substring(0, timeColon1);
if (timeColon1 == timeColon2) {
minute = time.substring(timeColon1 + 1);
second = "0";
} else {
minute = time.substring(timeColon1 + 1, timeColon2);
second = time.substring(timeColon2 + 1);
}
return UtilDateTime.toDate(month, day, year, hour, minute, second);
}
public static String toDateString(java.util.Date date, String splite) {
if (date == null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int year = calendar.get(Calendar.YEAR);
String monthStr;
String dayStr;
String yearStr;
if (month < 10) {
monthStr = "0" + month;
} else {
monthStr = "" + month;
}
if (day < 10) {
dayStr = "0" + day;
} else {
dayStr = "" + day;
}
yearStr = "" + year;
return yearStr + splite + monthStr + splite + dayStr;
}
public static String toDateHourString(java.util.Date date) {
if (date == null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
StringBuffer sb = new StringBuffer(UtilDateTime.toDateString(date));
sb.append(toHourString(calendar.get(Calendar.HOUR_OF_DAY)));
return sb.toString();
}
private static String toHourString(int hour) {
String hourStr;
if (hour < 10) {
hourStr = "0" + hour;
} else {
hourStr = "" + hour;
}
return hourStr;
}
/**
* Used by the hash method.
*/
private static MessageDigest digest = null;
public synchronized static final String hash(String data) {
if (digest == null) {
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsae) {
System.err.println("Failed to load the MD5 MessageDigest. " + "Jive will be unable to function normally.");
nsae.printStackTrace();
}
}
// Now, compute hash.
digest.update(data.getBytes());
return encodeHex(digest.digest());
}
/**
* Turns an array of bytes into a String representing each byte as an
* unsigned hex number.
* <p>
* Method by Santeri Paavolainen, Helsinki Finland 1996<br>
* (c) Santeri Paavolainen, Helsinki Finland 1996<br>
* Distributed under LGPL.
*
* @param bytes an array of bytes to convert to a hex-string
* @return generated hex string
*/
public static final String encodeHex(byte[] bytes) {
StringBuffer buf = new StringBuffer(bytes.length * 2);
int i;
for (i = 0; i < bytes.length; i++) {
if (((int) bytes[i] & 0xff) < 0x10) {
buf.append("0");
}
buf.append(Long.toString((int) bytes[i] & 0xff, 16));
}
return buf.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -