CommDateUtil

来源:互联网 发布:sql界面 编辑:程序博客网 时间:2024/06/05 06:14
package com.glorycube.bmc.action.util;


import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;


import org.jdom.Element;


import com.ibm.icu.text.DecimalFormat;
import com.ibm.icu.text.NumberFormat;
import com.ibm.icu.text.SimpleDateFormat;
import java.io.IOException;
import java.io.StringReader;
import java.util.List;


import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;


public class CommDateUtil {
/**
* 得到一个随机数
* @return
*/
public static String getReqSN(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
Random random = new Random();
NumberFormat nf = new DecimalFormat("0000000000");
String datetime = sdf.format(new Date());
int end = random.nextInt(100000000);
return datetime + nf.format(end);
}
/**
* 得到日月年  yyyymmdd
* @return
*/
public static String getdate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String datetime = sdf.format(new Date());
return datetime;
}
/**
* 得到时分秒  yyyyMMddHHmmss
* @return
*/
public static String getdatetime(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String datetime = sdf.format(new Date());
datetime = datetime.substring(8, 14);
return datetime;
}
public static  String setXmlValueFromMap(String strXML, Map<String, String> map) {
for (String key : map.keySet()) {
strXML = strXML.replaceAll("#" + key.trim().toUpperCase() + "#", map.get(key).trim());
}
return strXML;
}
/*
 * 格式化数值,避免出现科学计数
 */
public static  String doubleNumberFormat(Double value ) {
//格式化数据
NumberFormat  nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
return nf.format(value);
}
 
/**
 * 静态拼接字符串
 */
//得到xml
   public static Map<String, String> getXML2Map(String retMessage){

Map<String, String> map = new HashMap<String, String>();
//得到根节点
Element rootElement = getDocument(retMessage).getRootElement();

return retData(rootElement.getChildren(),map);
}
   
   
/**
 * 静态拼接字符串
 */
//积分兑换的xml 解析
   public static Map<String, String> getXML2Maps(String retMessage){

Map<String, String> map = new HashMap<String, String>();
//得到根节点
Element rootElement = getDocument(retMessage).getRootElement();

return retDatas(rootElement.getChildren(),map);
}
  
   /**
  * 递归解析获取返回XML数据
  * @param e <root>的子节点:<head>和<body>
  * @param map
  * @return
  */
   public static Map<String, String> retData(List<Element> e, Map<String, String> map){
  if(e.size() > 0 && e.get(0).getChildren().size()>0 ){
  for(Element _e : e){
  retData(_e.getChildren(),map);
  }
  return map;
  } else {
  for(Element _e : e){
  map.put(_e.getName(), _e.getText());
  System.out.println(_e.getName() + "<-->" + _e.getText());
  }
  return map;
  }
  }
   
   
   
   
   /**
  * 递归解析获取返回XML数据
  * @param e <root>的子节点:<head>和<body>
  * @param map
  * @return
  */
   public static Map<String, String> retDatas(List<Element> e, Map<String, String> map){
   
  if(e.size() > 0 && e.get(0).getChildren().size()>0 ){
  for(Element _e : e){
  System.out.println("递归解析获取返回XML数据"+e.size());
  retDatas(_e.getChildren(),map);
  }
  return map;
  } else {
  int i = 1;
  for(Element _e : e){
  if(_e.getName().equals("branchNo")|| _e.getName().equals("intrt")){
 
  String strI = i+"";
  System.out.println("递归解析获取返回XML数据"+_e.getName()+strI);// 这个是添加标示码
  map.put(_e.getName()+strI, _e.getText());
  System.out.println(_e.getName()+strI + "<----->" + _e.getText());
  System.out.println("i++ 前"+ i);
  if(_e.getName().equals("intrt")){
  map.put("I", i+"");//这个是2
  i=i+1;
  }
 
  System.out.println("i++ 后"+ i);
  }else{
  map.put(_e.getName(), _e.getText());
  System.out.println(_e.getName() + "<----->" + _e.getText());
  }
 
  }
  return map;
  }
  }
  //得到document
   public static org.jdom.Document getDocument(String retMessage){
SAXBuilder builder = new SAXBuilder();
org.jdom.Document document=null;
StringReader sr = new StringReader(retMessage); 
InputSource is = new InputSource(sr);
try {
document = builder.build(is);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
   
}
0 0