Java时间格式转换,如何获得时区?

Java时间格式转换,如何获得时区?,第1张

//我实现一个时钟窗口程序给你了,好让你更容易理解,希望对你有帮助。
import javaawt;
import javaawtevent;
import javautil;
//世界时钟
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();
Systemexit(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;
//也可以通过TimeZonesetTimeZone(String n)函数改变时区,n为时区参数名。
calendar = new GregorianCalendar(TimeZonegetTimeZone(tz));
t = new Thread(this);
tstart();
setSize(125, 125); // 设置画布大小
setBackground(Colorblack);
}
// 重写父类的方法绘制时钟图形
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
BasicStroke bstroke = new BasicStroke(20f);
g2dsetStroke(bstroke);
g2dsetColor(Colorgreen);
g2ddrawOval(0, 0, 100, 100);
bstroke = new BasicStroke(50f);
g2dsetStroke(bstroke);
g2ddrawLine(50, 0, 50, 5);
g2ddrawLine(0, 50, 5, 50);
g2ddrawLine(50, 95, 50, 98);
g2ddrawLine(95, 50, 98, 50);
double hourAngle = 2 MathPI (seconds - 3 60 60)
/ (12 60 60);
double minuteAngle = 2 MathPI (seconds - 15 60) / (60 60);
double secondAngle = 2 MathPI (seconds - 15) / (60);
bstroke = new BasicStroke(50f);
g2dsetStroke(bstroke);
g2ddrawLine(50, 50, 50 + (int) (30 Mathcos(hourAngle)),
50 + (int) (30 Mathsin(hourAngle)));
bstroke = new BasicStroke(30f);
g2dsetStroke(bstroke);
g2ddrawLine(50, 50, 50 + (int) (40 Mathcos(minuteAngle)),
50 + (int) (40 Mathsin(minuteAngle)));
bstroke = new BasicStroke(10f);
g2dsetStroke(bstroke);
g2ddrawLine(50, 50, 50 + (int) (45 Mathcos(secondAngle)),
50 + (int) (45 Mathsin(secondAngle)));
g2dsetColor(Colorred);
g2ddrawString(city, 35, 115);
}
public void timeElapsed() {
//new Date()获得当前时间
Systemoutprintln(new Date());
calendarsetTime(new Date());
seconds = calendarget(CalendarHOUR) 60 60
+ calendarget(CalendarMINUTE) 60
+ calendarget(CalendarSECOND);
}
public void run() {
try {
while (true) {
Threadsleep(300);
timeElapsed();
repaint();
}
} catch (InterruptedException e) {
}
}
}

这是标准的XML Schema的"日期型数据格式”
T是代表后面跟着“时间”。Z代表0时区,或者叫UTC统一时间。
国内常见于MS Office Excel电子表格XML中的时间格式。
Java用SimpleTimeFormat可以随意处理这样的时间文本


JAVA 如何获取指定IP 或网址的时间(如(">

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10305239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存