java linux 修改系统时间格式,java实现设置操作系统的北京时间,支持windows和linux...

package com.hotel.domain;

import java.io.ByteArrayOutputStream;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.Map;

import org.apache.log4j.LogManager;

import org.apache.log4j.Logger;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import com.hotel.utils.XmlHelper;

//.getLogger(BJTime.class)

public class BJTime {

private transient final static Logger log = LogManager.getLogger(BJTime.class);

public static void main(String[] args) {

String url="http://www.time.ac.cn/timeflash.asp?user=flash";

try {

String xml = sendGETRequest(url,null,"gb2312");

String formatTime = getTime(xml);//如2014-2-11 9:50:4

String[] times = formatTime.split(" ");

setTime(times[1],times[0]);

log.info("设置北京时间成功");

}

catch (Exception e) {

log.error("设置北京时间失败,请检查http://www.time.ac.cn/timeflash.asp?user=flash是否可以访问");

}

}

/**

* 发送GET请求

* @param path 请求路径

* @param params 请求参数

* @param encoding 编码

* @return 请求是否成功

*/

private static String sendGETRequest(String path, Map params, String ecoding) throws Exception{

// http://192.168.1.100:8080/web/ManageServlet?title=xxx&timelength=90

StringBuilder url = new StringBuilder(path);

if (params != null && !params.isEmpty()) {

url.append("?");

for (Map.Entry entry : params.entrySet()) {

url.append(entry.getKey()).append("=");

url.append(URLEncoder.encode(entry.getValue(), ecoding));

url.append("&");

}

url.deleteCharAt(url.length() - 1);

}

HttpURLConnection conn = (HttpURLConnection)new URL(url.toString()).openConnection();

conn.setConnectTimeout(5000);

conn.setRequestMethod("GET");

if(conn.getResponseCode() == 200){

return read(conn.getInputStream());

}

return null;

}

public static String read(InputStream inStream) throws Exception{

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

while( (len = inStream.read(buffer)) != -1 ){

outStream.write(buffer, 0, len);

}

inStream.close();

return new String(outStream.toByteArray(),"gb2312");

}

public static String getTime(String xmlStr) {

// String path = System.getProperty("user.dir") + "/time.xml";

// String xmlStr = XMLDocument.getXmlFromFile(path);

System.out.println(xmlStr);

Document doc = null;

try{

doc = DocumentHelper.parseText(xmlStr);// 将xml字符串转化为dom4j对象

Element root = doc.getRootElement();// 最大的Asset

Element timeElement =XmlHelper.getInstance().getSingleElementByName(root, "time");

String value = "";

Element subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "year");//

String year= subElement.getText();

subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "month");//

String month= subElement.getText();

subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "day");//

String day= subElement.getText();

subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "hour");//

String hour= subElement.getText();

subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "minite");//

String minite= subElement.getText();

subElement =XmlHelper.getInstance().getSingleElementByName(timeElement, "second");//

String second= subElement.getText();

value=year+"-"+month+"-"+day+" "+hour+":"+minite+":"+second;

String[] times = value.split(" ");

System.out.println(value);

System.out.println(times[0]);

System.out.println(times[1]);

return value;

}catch(Exception e){

e.printStackTrace();

}

return null;

}

/**

* {方法功能中文描述}

*

* @param time 时间 如“2014-2-11”

* @param date 日期 如“9:50:4”

* @author: wanghaotao

*/

public static void setTime(String time,String date){

String osName = System.getProperty("os.name");

String cmdTime = "";

String cmdDate = "";

try {

cmdTime = " cmd /c time "+time; // cmd /c time 22:35:00

cmdDate = " cmd /c date "+date; // cmd /c date 2009-03-26

if (osName.matches("^(?i)Windows.*$")) {// Window 系统

// 格式 HH:mm:ss

Runtime.getRuntime().exec(cmdTime);

// 格式:yyyy-MM-dd

Runtime.getRuntime().exec(cmdDate);

} else {// Linux 系统

cmdTime = " date -s "+time.replaceAll("-", ""); // date -s 20090326

cmdDate = " date -s "+date; // date -s 22:35:00

// 格式:yyyyMMdd

Runtime.getRuntime().exec(cmdDate);

// 格式 HH:mm:ss

Runtime.getRuntime().exec(cmdTime);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值