當前位置:首頁 » 編程語言 » java獲取時區

java獲取時區

發布時間: 2022-06-24 22:21:59

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中已知一個時區TimeZone,想取下一個時區如何取

在TimeZone類中有個靜態方法getAvailableIDs(int rawoffset) 可以獲取rawoffset對應的所有的時區id,其中參數表示時間偏移量,用毫秒錶示,例如東八區,則為8*60*60*1000。有了區域ID,就可以根據靜態方法getTimeZone(String zoneId)獲取對應的區域了。


所以獲取一個時間對應的所有區域就可以實現為:

TimeZonetz=TimeZone.getDefault();
intrawOffset=8;
String[]ids=TimeZone.getAvailableIDs(rawOffset*60*60*1000);
for(Stringid:ids){
tz=TimeZone.getTimeZone(id);
}

針對題主的要求,拿到tz之後,需要獲得下一個時區,可以這樣實現

TimeZonetz=TimeZone.getTimeZone("GMT+8:00");
intx=1;//可以為-2、-1、1、2。。。先獲取rawoffset,再獲取時區
intrawOffset=tz.getRawOffset()+x*60*60*1000;
String[]ids=TimeZone.getAvailableIDs(rawOffset);
for(Stringid:ids){
TimeZonenexttz=TimeZone.getTimeZone(id);
}

⑶ 在java中怎麼獲取北京時間各位不要吝嗇!

//這是通過網路獲取北京時間的方法
java.util.Locale locale=java.util.Locale.CHINA; //這是獲得本地中國時區

String pattern = "yyyy-MM-dd kk:mm:ss zZ";//這是日期格式
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(pattern,locale);//設定日期格式
java.util.Date date = new java.util.Date();
java.net.URL url=new URL("http://www.bjtime.cn");//取得資源對象
java.net.URLConnection uc=url.openConnection();//生成連接對象
uc.connect(); //發出連接
long ld=uc.getDate(); //取得網站日期時間
date=new Date(ld); //轉換為標准時間對象
String bjTime = df.format(date);
System.out.println("北京時間:"+bjTime);

⑷ java怎麼獲取當前是星期六的所有時區

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class DBOP
{
public static void main(String [] arg)
{
TimeZone time = TimeZone.getTimeZone("GMT+8"); //設置為東八區
time = TimeZone.getDefault();// 這個是國際化所用的
System.out.println(time);
TimeZone.setDefault(time);// 設置時區
Calendar calendar = Calendar.getInstance();// 獲取實例
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//構造格式化模板
Date date = calendar.getTime(); //獲取Date對象
String str = new String();
str = format1.format(date);//對象進行格式化,獲取字元串格式的輸出
System.out.println(str);
}
}

⑸ Java程序如何根據經緯度生成其當地實時時間

思路:

  1. 通過經緯度獲取當地時區(網路有現成的例子)

  2. 獲取你電腦當前的時間

  3. 時間原則上是每隔一個時區相差一個小時,所以你可以根據你的時間加上或者減去時區去算出經緯度所在地的實時時間

⑹ 在java裡面,如何得到UTC時間, 時間格式為:Tue Oct 12 00:00:00 UTC 0800 2010

Calendar gc = GregorianCalendar.getInstance();
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
//之後調用cal.get(int x)或cal.getTimeInMillis()方法所取得的時間即是UTC標准時間。
System.out.println("UTC:"+new Date(cal.getTimeInMillis()));

贈送其它時間方法,總有一款適合您
public static void main(String[] args) {
SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("foo:"+foo.format(new Date()));

Calendar gc = GregorianCalendar.getInstance();
System.out.println("gc.getTime():"+gc.getTime());
System.out.println("gc.getTimeInMillis():"+new Date(gc.getTimeInMillis()));

//當前系統默認時區的時間:
Calendar calendar=new GregorianCalendar();
System.out.print("時區:"+calendar.getTimeZone().getID()+" ");
System.out.println("時間:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
//美國洛杉磯時區
TimeZone tz=TimeZone.getTimeZone("America/Los_Angeles");
//時區轉換
calendar.setTimeZone(tz);
System.out.print("時區:"+calendar.getTimeZone().getID()+" ");
System.out.println("時間:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
Date time=new Date();

//1、取得本地時間:
java.util.Calendar cal = java.util.Calendar.getInstance();

//2、取得時間偏移量:
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);

//3、取得夏令時差:
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);

//4、從本地時間里扣除這些差量,即可以取得UTC時間:
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));

//之後調用cal.get(int x)或cal.getTimeInMillis()方法所取得的時間即是UTC標准時間。
System.out.println("UTC:"+new Date(cal.getTimeInMillis()));

Calendar calendar1 = Calendar.getInstance();
TimeZone tztz = TimeZone.getTimeZone("GMT");
calendar1.setTimeZone(tztz);
System.out.println(calendar.getTime());
System.out.println(calendar.getTimeInMillis());

}

運算結果是Tue Oct 19 16:54:57 CST 2010 符合你的要求
只是以毫秒來算的

⑺ java 如何獲取當前系統的時區,不是時間

Calendarcal=Calendar.getInstance();
TimeZonetimeZone=cal.getTimeZone();
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());

你試試這個行不行

⑻ java new date 獲取的是什麼時區

資料庫默認時區與伺服器上不一致。如果伺服器時間是你想要的,那麼就是資料庫時區未設置。一般情況下安裝中文版的就會默認給你默認設置為東八區,應該沒有問題。我先前這個中間還用了一個中間件才到資料庫,但是前台增加與顯示結果也都沒問題(中間件會負責解析)。這種情況跟客戶端一點關系都沒有(除非你的Date是JS中的Date那就有關系了)

⑼ java中utc時間怎麼轉換為本地時間

java utc轉本地時間的方法:
1、創建一個格式化時間對象simpleDateFormat,並初始化格式yyyy-MM-dd HH:mm:ss:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2、創建時區對象utcZone,獲取utc所在的時區
TimeZone utcZone = TimeZone.getTimeZone("UTC");
3、設置utc時區,為轉換做准備
simpleDateFormat.setTimeZone(utcZone);
4、獲取本地時間,並轉換
Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime"));
5,按照上面的流程就轉換本地時間了。

熱點內容
php測試員 發布:2025-02-05 10:54:58 瀏覽:514
linux反編譯jar 發布:2025-02-05 10:46:29 瀏覽:25
演算法激勵 發布:2025-02-05 10:45:48 瀏覽:304
java16進制字元串 發布:2025-02-05 10:38:13 瀏覽:643
創業團隊配置有哪些 發布:2025-02-05 10:37:40 瀏覽:630
王者鍵盤怎麼設置安卓 發布:2025-02-05 10:32:01 瀏覽:373
阿里雲輕量伺服器ip搭建 發布:2025-02-05 10:24:46 瀏覽:487
編程高精度 發布:2025-02-05 10:22:28 瀏覽:230
使命召喚如何配置爆炸狙 發布:2025-02-05 10:08:12 瀏覽:143
java訪問共享目錄 發布:2025-02-05 10:03:56 瀏覽:282