关于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) { } } }

数据库默认时区与服务器上不一致。如果服务器时间是你想要的,那么就是数据库时区未设置。一般情况下安装中文版的就会默认给你默认设置为东八区,应该没有问题。我先前这个中间还用了一个中间件才到数据库,但是前台增加与显示结果也都没问题(中间件会负责解析)。这种情况跟客户端一点关系都没有(除非你的Date是JS中的Date那就有关系了)

你好,代码如下,可以直接运行

import javatextSimpleDateFormat;

import javautilDate;

import javautilTimeZone;

public class test {

public static void main(String[] args) {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date myDate = new Date();// 当前时间

TimeZone zone = TimeZonegetTimeZone("GMT+8");// 设置时区

formatsetTimeZone(zone);

Systemoutprintln(formatformat(myDate));

zone = TimeZonegetTimeZone("GMT+7");

formatsetTimeZone(zone);

Systemoutprintln(formatformat(myDate));

zone = TimeZonegetTimeZone("GMT+9");

formatsetTimeZone(zone);

Systemoutprintln(formatformat(myDate));

zone = TimeZonegetTimeZone("GMT-8");

formatsetTimeZone(zone);

Systemoutprintln(formatformat(myDate));

}

}

运行结果:

2011-11-18 09:00:54

2011-11-18 08:00:54

2011-11-18 10:00:54

2011-11-17 17:00:54

import javautil;

import javatext;

public class timeText {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

Date now = new Date();

Calendar cal = CalendargetInstance();

DateFormat d1 = DateFormatgetDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)

String str1 = d1format(now);

DateFormat d2 = DateFormatgetDateTimeInstance();//获取系统时间格式

String str2 = d2format(now); //将时间格式转换成字符串

DateFormat d3 = DateFormatgetTimeInstance();

String str3 = d3format(now);

DateFormat d4 = DateFormatgetInstance(); //使用SHORT风格显示日期和时间

String str4 = d4format(now);

DateFormat d5 = DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL); //显示日期,周,时间(精确到秒)

String str5 = d5format(now);

DateFormat d6 = DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG); //显示日期。时间(精确到秒)

String str6 = d6format(now);

DateFormat d7 = DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT); //显示日期,时间(精确到分)

String str7 = d7format(now);

DateFormat d8 = DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM); //显示日期,时间(精确到分)

String str8 = d8format(now);//与SHORT风格相比,这种方式最好用

Systemoutprintln("用Date方式显示时间: " + now);//此方法显示的结果和CalendargetInstance()getTime()一样

Systemoutprintln("用DateFormatgetDateInstance()格式化时间后为:" + str1);

Systemoutprintln("用DateFormatgetDateTimeInstance()格式化时间后为:" + str2);

Systemoutprintln("用DateFormatgetTimeInstance()格式化时间后为:" + str3);

Systemoutprintln("用DateFormatgetInstance()格式化时间后为:" + str4);

Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为:" + str5);

Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为:" + str6);

Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后为:" + str7);

Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间后为:" + str8);

}

}

运行结果:

用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008

用DateFormatgetDateInstance()格式化时间后为:2008-6-16

用DateFormatgetDateTimeInstance()格式化时间后为:2008-6-16 20:54:53

用DateFormatgetTimeInstance()格式化时间后为:20:54:53

用DateFormatgetInstance()格式化时间后为:08-6-16 下午8:54

用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为

:2008年6月16日 星期一 下午08时54分53秒 CST

用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为

:2008年6月16日 下午08时54分53秒

用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后

为:08-6-16 下午8:54

用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间

后为:2008-6-16 20:54:53

或者直接获取毫秒,但是感觉与你问题无关

public Date getCST(String strGMT) throws ParseException {

DateFormat df = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", LocaleENGLISH);

return dfparse(strGMT);

}

public String getGMT(Date dateCST) {

DateFormat df = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", LocaleENGLISH);

dfsetTimeZone(TimeZonegetTimeZone("GMT")); // modify Time Zone

return(dfformat(dateCST));

}

2种方法仅供参考,希望 采纳。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssSS:SZ");

Date date = sdfparse(time);

这样不行的话,你就把最后一:替换成没有就行吧

package comwebkfatest;

//>

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 = TimeZonegetTimeZone("UTC");

3、设置utc时区,为转换做准备

simpleDateFormatsetTimeZone(utcZone);

4、获取本地时间,并转换

Date myDate = simpleDateFormatparse(rawQuestiongetString("AskDateTime"));

5,按照上面的流程就转换本地时间了。

以上就是关于关于JAVA时间格式转换问题,涉及时区全部的内容,包括:关于JAVA时间格式转换问题,涉及时区、java new date 获取的是什么时区、请Java高手帮忙,怎么样写可以体现出4个时区的城市的当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9555681.html

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

发表评论

登录后才能评论

评论列表(0条)

保存