java時區,java時區時間

本文目錄一覽:

java 時區轉換

public Date getCST(String strGMT) throws ParseException {

DateFormat df = new SimpleDateFormat(“EEE, d-MMM-yyyy HH:mm:ss z”, Locale.ENGLISH);

return df.parse(strGMT);

}

public String getGMT(Date dateCST) {

DateFormat df = new SimpleDateFormat(“EEE, d-MMM-yyyy HH:mm:ss z”, Locale.ENGLISH);

df.setTimeZone(TimeZone.getTimeZone(“GMT”)); // modify Time Zone.

return(df.format(dateCST));

}

2種方法僅供參考,希望 採納。

昭通java培訓學校告訴你Java中的時間處理?

在Java中,如何獲取不同時區的當前時間?你知道這道題的正確答案應該如何回答嗎?背後的原理又是什麼呢?

然後,緊接著,我又提出了以下問題:

為什麼以下代碼無法得到美國時間。(在東八區的計算機上)

接下來,java課程培訓機構就圍繞這兩個問題,來帶領讀者一起學習一下哪些和Java中的時間有關的概念。

時區

前面提到了時區,可能很多讀者不知道什麼是時區,先來簡單介紹一下。

時區是地球上的區域使用同一個時間定義。以前,人們通過觀察太陽的位置(時角)決定時間,這就使得不同經度的地方的時間有所不同(地方時)。1863年,首次使用時區的概念。時區通過設立一個區域的標準時間部分地解決了這個問題。

世界各個國家位於地球不同位置上,因此不同國家,特別是東西跨度大的國家日出、日落時間必定有所偏差。這些偏差就是所謂的時差。

為了照顧到各地區的使用方便,又使其他地方的人容易將本地的時間換算到別的地方時間上去。有關國際會議決定將地球表面按經線從東到西,劃成一個個區域,並且規定相鄰區域的時間相差1小時。在同一區域內的東端和西端的人看到太陽升起的時間最多相差不過1小時。當人們跨過一個區域,就將自己的時鐘校正1小時(向西減1小時,向東加1小時)

接下來,本文就圍繞這兩個問題,來帶領讀者一起學習一下哪些和Java中的時間有關的概念。

時區

前面提到了時區,可能很多讀者不知道什麼是時區,先來簡單介紹一下。

時區是地球上的區域使用同一個時間定義。以前,人們通過觀察太陽的位置(時角)決定時間,這就使得不同經度的地方的時間有所不同(地方時)。1863年,首次使用時區的概念。時區通過設立一個區域的標準時間部分地解決了這個問題。

世界各個國家位於地球不同位置上,因此不同國家,特別是東西跨度大的國家日出、日落時間必定有所偏差。這些偏差就是所謂的時差。

為了照顧到各地區的使用方便,又使其他地方的人容易將本地的時間換算到別的地方時間上去。有關國際會議決定將地球表面按經線從東到西,劃成一個個區域,並且規定相鄰區域的時間相差1小時。在同一區域內的東端和西端的人看到太陽升起的時間最多相差不過1小時。當人們跨過一個區域,就將自己的時鐘校正1小時(向西減1小時,向東加1小時

關於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) { Graphics2D g2d = (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時間 yyyy-MM-dd’T’HH:mm:ss.SSSZ 中的T是什麼意思??

T的含義是表示時間的開始;

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。

Java還剔除了C++的操作符過載(overload)和多繼承特徵,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。

面向對象

Java是一個面向對象的語言。對程序員來說,這意味著要注意應中的數據和操縱數據的方法(method),而不是嚴格地用過程來思考。在一個面向對象的系統中,類(class)是數據和操作數據的方法的集合。

數據和方法一起描述對象(object)的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。

Java還包括一個類的擴展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產生圖形用戶介面部件的類(java.awt包),這裡awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網路功能的類(java.net包)。

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) {

}

}

}

原創文章,作者:AHKE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131761.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AHKE的頭像AHKE
上一篇 2024-10-03 23:47
下一篇 2024-10-03 23:47

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論