分享

校时

 程序猿之家 2015-02-10

需要管理员权限


package com.siqi;

import java.io.PrintStream;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import java.util.TimerTask;

public class OSTime extends TimerTask{
  public void run(){
    try{
      URLConnection conn = new URL("http://www.baidu.com")
        .openConnection();
      String dateStr = conn.getHeaderField("Date");
      System.out.println("获取到的服务器时间:" + dateStr);

      DateFormat httpDateFormat = new SimpleDateFormat(
        "E, dd MMM yyyy HH:mm:ss z", Locale.US);
      httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
      Date date = httpDateFormat.parse(dateStr);

      String currDate = new SimpleDateFormat("yyy-MM-dd").format(date);
      String currTime = new SimpleDateFormat("HH:mm:ss").format(date);

      setTime(currDate, currTime);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void setTime(String date, String time){
    String osName = System.getProperty("os.name");
    String cmd = "";
    try{
      Process execTime;
      Process execDate;
      Process execTime;
      if (osName.matches("^(?i)Windows.*$")){  //windows系统
        cmd = " cmd /c date " + date;
        Process execDate = Runtime.getRuntime().exec(cmd);

        cmd = "  cmd /c time " + time;
        execTime = Runtime.getRuntime().exec(cmd);
      }
      else { //linux系统
        cmd = "  date -s " + date;
        execDate = Runtime.getRuntime().exec(cmd);

        cmd = "  date -s " + time;
        execTime = Runtime.getRuntime().exec(cmd);
      }
      if (execDate.waitFor() == 0)
        System.out.println("设置系统日期成功:" + date);
      else
        System.out.println("设置系统日期成功:" + date);
      if (execTime.waitFor() == 0)
        System.out.println("设置系统时间成功:" + time);
      else
        System.out.println("设置系统时间失败:" + time);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}




package com.siqi;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Properties;
import java.util.Timer;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Start{
  public static void main(String[] args){
    try{
      InputStream in = new FileInputStream(new File("config.properties"));

      Properties property = new Properties();
      property.load(in);
      String cycle = property.getProperty("cycle");
      System.out.println(cycle);

      ScriptEngineManager manager = new ScriptEngineManager();
      ScriptEngine engine = manager.getEngineByName("js");
      String result = engine.eval(cycle).toString();
      double cycleDouble = Double.parseDouble(result);
      int cycleInt = (int)cycleDouble;

      System.out.println("定时器执行周期为(单位ms)  " + cycleInt);

      OSTime ostime = new OSTime();
      Timer timer = new Timer();
      timer.schedule(ostime, 1000L, cycleInt);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多