//我实现一个时钟窗口程序给你了,好让你更容易理解,希望对你有帮助。 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个时区的城市的当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)