「java获取gmt」Java获取当前进程id

博主:adminadmin 2023-03-19 13:26:11 375

本篇文章给大家谈谈java获取gmt,以及Java获取当前进程id对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中我如何获取时区?

//我实现一个时钟窗口程序给你了,好让你更容易理解,希望对你有帮助。

import java.awt.*;

import java.awt.event.*;

import java.util.*;

//世界时钟

public class TimerTest {

public static void main(String[] args) {

new TimerTestFrame("世界时钟");

}

}

class TimerTestFrame extends Frame {

/**

*

*/

private static final long serialVersionUID = 1L;

public TimerTestFrame(String s) {

super(s);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

dispose();

System.exit(0);

}

});

setLayout(new GridLayout(2, 6));

ClockCanvas clk1 = new ClockCanvas("北京", "GMT+8"); // 创建时钟

ClockCanvas clk2 = new ClockCanvas("巴黎", "GMT+2");

ClockCanvas clk3 = new ClockCanvas("华盛顿", "GMT-4");

ClockCanvas clk4 = new ClockCanvas("洛衫矶", "GMT-7");

ClockCanvas clk5 = new ClockCanvas("伦敦", "GMT+1");

ClockCanvas clk6 = new ClockCanvas("芝加哥", "GMT-5");

add(clk1);

add(clk2);

add(clk3);

add(clk4);

add(clk5);

add(clk6);

setSize(500, 350); // 设置框架宽高

setVisible(true);

}

}

class ClockCanvas extends Canvas implements Runnable {

/**

*

*/

private static final long serialVersionUID = 1L;

private int seconds = 0;

private String city;

private GregorianCalendar calendar;

Thread t;

public ClockCanvas(String c, String tz) {

city = c;

//也可以通过TimeZone.setTimeZone(String n)函数改变时区,n为时区参数名。

calendar = new GregorianCalendar(TimeZone.getTimeZone(tz));

t = new Thread(this);

t.start();

setSize(125, 125); // 设置画布大小

setBackground(Color.black);

}

// 重写父类的方法绘制时钟图形

public void paint(Graphics g) {

Graphics2Dg2d = (Graphics2D) g;

BasicStroke bstroke = new BasicStroke(2.0f);

g2d.setStroke(bstroke);

g2d.setColor(Color.green);

g2d.drawOval(0, 0, 100, 100);

bstroke = new BasicStroke(5.0f);

g2d.setStroke(bstroke);

g2d.drawLine(50, 0, 50, 5);

g2d.drawLine(0, 50, 5, 50);

g2d.drawLine(50, 95, 50, 98);

g2d.drawLine(95, 50, 98, 50);

double hourAngle = 2 * Math.PI * (seconds - 3 * 60 * 60)

/ (12 * 60 * 60);

double minuteAngle = 2 * Math.PI * (seconds - 15 * 60) / (60 * 60);

double secondAngle = 2 * Math.PI * (seconds - 15) / (60);

bstroke = new BasicStroke(5.0f);

g2d.setStroke(bstroke);

g2d.drawLine(50, 50, 50 + (int) (30 * Math.cos(hourAngle)),

50 + (int) (30 * Math.sin(hourAngle)));

bstroke = new BasicStroke(3.0f);

g2d.setStroke(bstroke);

g2d.drawLine(50, 50, 50 + (int) (40 * Math.cos(minuteAngle)),

50 + (int) (40 * Math.sin(minuteAngle)));

bstroke = new BasicStroke(1.0f);

g2d.setStroke(bstroke);

g2d.drawLine(50, 50, 50 + (int) (45 * Math.cos(secondAngle)),

50 + (int) (45 * Math.sin(secondAngle)));

g2d.setColor(Color.red);

g2d.drawString(city, 35, 115);

}

public void timeElapsed() {

//new Date()()获得当前时间

System.out.println(new Date()());

calendar.setTime(new Date()());

seconds = calendar.get(Calendar.HOUR) * 60 * 60

+ calendar.get(Calendar.MINUTE) * 60

+ calendar.get(Calendar.SECOND);

}

public void run() {

try {

while (true) {

Thread.sleep(300);

timeElapsed();

repaint();

}

} catch (InterruptedException e) {

}

}

}

如何用java程序获取取internet标准时间

获取internet标准时间,参考以下代码:

TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); // 时区设置

URL url=new URL("

);//取得资源对象

URLConnection uc=url.openConnection();//生成连接对象

uc.connect(); //发出连接

long ld=uc.getDate(); //取得网站日期时间(时间戳)

Date date=new Date(ld); //转换为标准时间对象

//分别取得时间中的小时,分钟和秒,并输出

System.out.print(date.getHours()+"时"+date.getMinutes()+"分"+date.getSeconds()+"秒");

java获取网络当前时间

如果你要获取的是Internet时间,可以使用NTP服务。

NTP概念简介 

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

java实现:

import java.io.InputStream;

import java.net.Socket;

public class TimeUtil {

    public static final int DEFAULT_PORT = 37;//NTP服务器端口

    public static final String DEFAULT_HOST = "time-nw.nist.gov";//NTP服务器地址

    private TimeUtil() {

    };

    public static long currentTimeMillis(Boolean sync) {

        if (sync != null  sync.booleanValue() != true)

            return System.currentTimeMillis();

        try {

            return syncCurrentTime();

        } catch (Exception e) {

            return System.currentTimeMillis();

        }

    }

    public static long syncCurrentTime()  throws Exception {

        // The time protocol sets the epoch at 1900,

        // the java Date class at 1970. This number

        // converts between them.

        long differenceBetweenEpochs = 2208988800L;

        // If you'd rather not use the magic number uncomment

        // the following section which calculates it directly.

        /*

         * TimeZone gmt = TimeZone.getTimeZone("GMT"); Calendar epoch1900 =

         * Calendar.getInstance(gmt); epoch1900.set(1900, 01, 01, 00, 00, 00);

         * long epoch1900ms = epoch1900.getTime().getTime(); Calendar epoch1970

         * = Calendar.getInstance(gmt); epoch1970.set(1970, 01, 01, 00, 00, 00);

         * long epoch1970ms = epoch1970.getTime().getTime();

         * 

         * long differenceInMS = epoch1970ms - epoch1900ms; long

         * differenceBetweenEpochs = differenceInMS/1000;

         */

        InputStream raw = null;

        try {

            Socket theSocket = new Socket(DEFAULT_HOST, DEFAULT_PORT);

            raw = theSocket.getInputStream();

            long secondsSince1900 = 0;

            for (int i = 0; i  4; i++) {

                secondsSince1900 = (secondsSince1900  8) | raw.read();

            }

            if (raw != null)

                raw.close();

            long secondsSince1970 = secondsSince1900 - differenceBetweenEpochs;

            long msSince1970 = secondsSince1970 * 1000;

            return msSince1970;

        } catch (Exception e) {

            throw new Exception(e);

        }

    }

}

中国大概能用的NTP时间服务器 

     server 133.100.11.8 prefer 

     server 210.72.145.44 

     server 203.117.180.36 //程序中所用的 

     server 131.107.1.10 

     server time.asia.apple.com 

     server 64.236.96.53 

     server 130.149.17.21 

     server 66.92.68.246 

     server  

     server 18.145.0.30 

     server clock.via.net 

     server 137.92.140.80 

     server 133.100.9.2 

     server 128.118.46.3 

     server ntp.nasa.gov 

     server 129.7.1.66 

     server ntp-sop.inria.frserver 210.72.145.44(国家授时中心服务器IP地址) 

     ntpdate 131.107.1.10 

     ntpdate -s time.asia.apple.com

java 获取当前时间与零点的时间差

一般情况下不会出现如题所示的问题,既然出现了我们就要想办法解决之。以我的机器为例,我的当前系统时间是北京时间2011-08-31T08:00:00,但是newDate()得到的却是:2011-08-31T00:00:00。表示java得到的时间比当前系统时间提前了8个小时,那么我们就要想办法把java得到的时间向后推迟8个小时。解决的办法是:

1、找到你用的jre文件夹,以本机为例:C:\Program Files\Java\jdk1.5.0\jre

2、在上述文件夹下有个zi文件夹,我们的工作都在这里。

3、zi文件夹下有一个Etc文件夹,我们要做的工作就是从这个文件夹下找到对应的GMT文件替换zi下GMT文件。

4、选择哪个文件呢?如果java获取的时间+N=当前系统时间,就选择GMT-N文件,重命名为GMT,覆盖掉zi下的GMT文件,如果java获取的时间-N=当前系统时间,就选择GMT+N文件,重命名为GMT,覆盖掉zi下的GMT文件。

5、再运行一下你的程序看时间是不是正确了,如果还是不正确,请确认你的jre目录是否选得正确。

java中如何获取时区?

//我实现一个时钟窗口程序给你了,好让你更容易理解,希望对你有帮助。\x0d\x0aimport java.awt.*;\x0d\x0aimport java.awt.event.*;\x0d\x0aimport java.util.*;\x0d\x0a\x0d\x0a//世界时钟\x0d\x0apublic class TimerTest {\x0d\x0apublic static void main(String[] args) {\x0d\x0anew TimerTestFrame("世界时钟");\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aclass TimerTestFrame extends Frame {\x0d\x0a/**\x0d\x0a* \x0d\x0a*/\x0d\x0aprivate static final long serialVersionUID = 1L;\x0d\x0a\x0d\x0apublic TimerTestFrame(String s) {\x0d\x0asuper(s);\x0d\x0aaddWindowListener(new WindowAdapter() {\x0d\x0apublic void windowClosing(WindowEvent e) {\x0d\x0adispose();\x0d\x0aSystem.exit(0);\x0d\x0a}\x0d\x0a});\x0d\x0asetLayout(new GridLayout(2, 6));\x0d\x0a\x0d\x0aClockCanvas clk1 = new ClockCanvas("北京", "GMT+8"); // 创建时钟\x0d\x0aClockCanvas clk2 = new ClockCanvas("巴黎", "GMT+2");\x0d\x0aClockCanvas clk3 = new ClockCanvas("华盛顿", "GMT-4");\x0d\x0aClockCanvas clk4 = new ClockCanvas("洛衫矶", "GMT-7");\x0d\x0aClockCanvas clk5 = new ClockCanvas("伦敦", "GMT+1");\x0d\x0aClockCanvas clk6 = new ClockCanvas("芝加哥", "GMT-5");\x0d\x0aadd(clk1);\x0d\x0aadd(clk2);\x0d\x0aadd(clk3);\x0d\x0aadd(clk4);\x0d\x0aadd(clk5);\x0d\x0aadd(clk6);\x0d\x0asetSize(500, 350); // 设置框架宽高\x0d\x0asetVisible(true);\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aclass ClockCanvas extends Canvas implements Runnable {\x0d\x0a/**\x0d\x0a* \x0d\x0a*/\x0d\x0aprivate static final long serialVersionUID = 1L;\x0d\x0a\x0d\x0aprivate int seconds = 0;\x0d\x0a\x0d\x0aprivate String city;\x0d\x0a\x0d\x0aprivate GregorianCalendar calendar;\x0d\x0a\x0d\x0aThread t;\x0d\x0a\x0d\x0apublic ClockCanvas(String c, String tz) {\x0d\x0acity = c;\x0d\x0a//也可以通过TimeZone.setTimeZone(String n)函数改变时区,n为时区参数名。\x0d\x0acalendar = new GregorianCalendar(TimeZone.getTimeZone(tz));\x0d\x0at = new Thread(this);\x0d\x0at.start();\x0d\x0asetSize(125, 125); // 设置画布大小\x0d\x0asetBackground(Color.black);\x0d\x0a}\x0d\x0a\x0d\x0a// 重写父类的方法绘制时钟图形\x0d\x0apublic void paint(Graphics g) {\x0d\x0aGraphics2Dg2d = (Graphics2D) g;\x0d\x0aBasicStroke bstroke = new BasicStroke(2.0f);\x0d\x0ag2d.setStroke(bstroke);\x0d\x0ag2d.setColor(Color.green);\x0d\x0ag2d.drawOval(0, 0, 100, 100);\x0d\x0abstroke = new BasicStroke(5.0f);\x0d\x0ag2d.setStroke(bstroke);\x0d\x0ag2d.drawLine(50, 0, 50, 5);\x0d\x0ag2d.drawLine(0, 50, 5, 50);\x0d\x0ag2d.drawLine(50, 95, 50, 98);\x0d\x0ag2d.drawLine(95, 50, 98, 50);\x0d\x0adouble hourAngle = 2 * Math.PI * (seconds - 3 * 60 * 60)\x0d\x0a/ (12 * 60 * 60);\x0d\x0adouble minuteAngle = 2 * Math.PI * (seconds - 15 * 60) / (60 * 60);\x0d\x0adouble secondAngle = 2 * Math.PI * (seconds - 15) / (60);\x0d\x0abstroke = new BasicStroke(5.0f);\x0d\x0ag2d.setStroke(bstroke);\x0d\x0ag2d.drawLine(50, 50, 50 + (int) (30 * Math.cos(hourAngle)),\x0d\x0a50 + (int) (30 * Math.sin(hourAngle)));\x0d\x0abstroke = new BasicStroke(3.0f);\x0d\x0ag2d.setStroke(bstroke);\x0d\x0ag2d.drawLine(50, 50, 50 + (int) (40 * Math.cos(minuteAngle)),\x0d\x0a50 + (int) (40 * Math.sin(minuteAngle)));\x0d\x0abstroke = new BasicStroke(1.0f);\x0d\x0ag2d.setStroke(bstroke);\x0d\x0ag2d.drawLine(50, 50, 50 + (int) (45 * Math.cos(secondAngle)),\x0d\x0a50 + (int) (45 * Math.sin(secondAngle)));\x0d\x0ag2d.setColor(Color.red);\x0d\x0ag2d.drawString(city, 35, 115);\x0d\x0a}\x0d\x0a\x0d\x0apublic void timeElapsed() {\x0d\x0a//new Date()()获得当前时间\x0d\x0aSystem.out.println(new Date()());\x0d\x0acalendar.setTime(new Date()());\x0d\x0aseconds = calendar.get(Calendar.HOUR) * 60 * 60\x0d\x0a+ calendar.get(Calendar.MINUTE) * 60\x0d\x0a+ calendar.get(Calendar.SECOND);\x0d\x0a}\x0d\x0a\x0d\x0apublic void run() {\x0d\x0atry {\x0d\x0awhile (true) {\x0d\x0aThread.sleep(300);\x0d\x0atimeElapsed();\x0d\x0arepaint();\x0d\x0a}\x0d\x0a} catch (InterruptedException e) {\x0d\x0a}\x0d\x0a}\x0d\x0a}

java怎么获取gmt当前的系统时间

Date now = new Date(); 当前时间就是now,你试着打印一下就出来了,如果对日期时间格式有要求,就SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式,不就OK了

java获取gmt的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java获取当前进程id、java获取gmt的信息别忘了在本站进行查找喔。