本文目錄一覽:
北大青鳥java培訓:Java中的時間處理?
在Java中,如何獲取不同時區的當前時間?你知道這道題的正確答案應該如何回答嗎?背後的原理又是什麼呢?然後,緊接著,我又提出了以下問題:為什麼以下代碼無法得到美國時間。
(在東八區的計算機上)接下來,java課程培訓機構就圍繞這兩個問題,來帶領讀者一起學習一下哪些和Java中的時間有關的概念。
時區前面提到了時區,可能很多讀者不知道什麼是時區,先來簡單介紹一下。
時區是地球上的區域使用同一個時間定義。
以前,人們通過觀察太陽的位置(時角)決定時間,這就使得不同經度的地方的時間有所不同(地方時)。
1863年,首次使用時區的概念。
時區通過設立一個區域的標準時間部分地解決了這個問題。
世界各個國家位於地球不同位置上,因此不同國家,特別是東西跨度大的國家日出、日落時間必定有所偏差。
這些偏差就是所謂的時差。
為了照顧到各地區的使用方便,又使其他地方的人容易將本地的時間換算到別的地方時間上去。
有關國際會議決定將地球表面按經線從東到西,劃成一個個區域,並且規定相鄰區域的時間相差1小時。
在同一區域內的東端和西端的人看到太陽升起的時間最多相差不過1小時。
當人們跨過一個區域,就將自己的時鐘校正1小時(向西減1小時,向東加1小時)接下來,本文就圍繞這兩個問題,來帶領讀者一起學習一下哪些和Java中的時間有關的概念。
時區前面提到了時區,可能很多讀者不知道什麼是時區,先來簡單介紹一下。
時區是地球上的區域使用同一個時間定義。
以前,人們通過觀察太陽的位置(時角)決定時間,這就使得不同經度的地方的時間有所不同(地方時)。
1863年,首次使用時區的概念。
時區通過設立一個區域的標準時間部分地解決了這個問題。
世界各個國家位於地球不同位置上,因此不同國家,特別是東西跨度大的國家日出、日落時間必定有所偏差。
這些偏差就是所謂的時差。
為了照顧到各地區的使用方便,又使其他地方的人容易將本地的時間換算到別的地方時間上去。
有關國際會議決定將地球表面按經線從東到西,劃成一個個區域,並且規定相鄰區域的時間相差1小時。
在同一區域內的東端和西端的人看到太陽升起的時間最多相差不過1小時。
當人們跨過一個區域,就將自己的時鐘校正1小時(向西減1小時,向東加1小時
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時間 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 時區轉換
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種方法僅供參考,希望 採納。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/153580.html