包含java时区问题的相关文章推荐的词条

本文目录一览:

JAVA UTC时间的基准点问题

计算机用的是unix纪元,1970年1月1日 0时0分 UTC(协调世界时 即升级版的格林威治时间)

可以说是英国标准时间。

中国是UTC+8 八区,中国本地时间要在以上标准时间上面加8小时。

反映在java的timemilli毫秒时是,

long china_ts=System.currentTimeMillier()+1000*60*60*8;

但只在不支持Java SE时区的早期版本(比如Java Card,Java ME/MIDP1.0)才需要自己手工加。

现在的java系统本身有时区库,用Calendar/Date类,会自动调整时区。不需要再手动算。按以上加法会画蛇添足。

关于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中关于时区转换的问题

我倒是有个笨想法 截取最后5位与+0800比较(都先转成DATE类型) 少多少就在HOURS上加多少 如果加完后的HOURS数大于24 则HOURS-24并且DATE加1

java时间转换,带时区的

我假设了你的已知时间类型为Calendar,如果不是你也可以自己改成Date类型,代码如下:

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.TimeZone;

public class Test {

public static void main(String[] args) {

//假如这个是你已知的时间类型

Calendar cal = Calendar.getInstance();

cal.getTimeInMillis();

//北京时区GMT+8

Calendar beijingcal = Calendar.getInstance();

beijingcal.clear();

beijingcal.setTimeZone(TimeZone.getTimeZone(“GMT+8”));

beijingcal.setTimeInMillis(cal.getTimeInMillis());

DateFormat fmt = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

String beijingFormatStr = fmt.format(beijingcal.getTime());

System.out.println(beijingFormatStr);

}

}

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/129434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
简单一点简单一点
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相关推荐

  • Python官网中文版:解决你的编程问题

    Python是一种高级编程语言,它可以用于Web开发、科学计算、人工智能等领域。Python官网中文版提供了全面的资源和教程,可以帮助你入门学习和进一步提高编程技能。 一、Pyth…

    编程 2025-04-29
  • 如何解决WPS保存提示会导致宏不可用的问题

    如果您使用过WPS,可能会碰到在保存的时候提示“文件中含有宏,保存将导致宏不可用”的问题。这个问题是因为WPS在默认情况下不允许保存带有宏的文件,为了解决这个问题,本篇文章将从多个…

    编程 2025-04-29
  • Java Thread.start() 执行几次的相关问题

    Java多线程编程作为Java开发中的重要内容,自然会有很多相关问题。在本篇文章中,我们将以Java Thread.start() 执行几次为中心,为您介绍这方面的问题及其解决方案…

    编程 2025-04-29
  • Python爬虫乱码问题

    在网络爬虫中,经常会遇到中文乱码问题。虽然Python自带了编码转换功能,但有时候会出现一些比较奇怪的情况。本文章将从多个方面对Python爬虫乱码问题进行详细的阐述,并给出对应的…

    编程 2025-04-29
  • NodeJS 建立TCP连接出现粘包问题

    在TCP/IP协议中,由于TCP是面向字节流的协议,发送方把需要传输的数据流按照MSS(Maximum Segment Size,最大报文段长度)来分割成若干个TCP分节,在接收端…

    编程 2025-04-29
  • 如何解决vuejs应用在nginx非根目录下部署时访问404的问题

    当我们使用Vue.js开发应用时,我们会发现将应用部署在nginx的非根目录下时,访问该应用时会出现404错误。这是因为Vue在刷新页面或者直接访问非根目录的路由时,会认为服务器上…

    编程 2025-04-29
  • 如何解决egalaxtouch设备未找到的问题

    egalaxtouch设备未找到问题通常出现在Windows或Linux操作系统上。如果你遇到了这个问题,不要慌张,下面我们从多个方面进行详细阐述解决方案。 一、检查硬件连接 首先…

    编程 2025-04-29
  • Python折扣问题解决方案

    Python的折扣问题是在计算购物车价值时常见的问题。在计算时,需要将原价和折扣价相加以得出最终的价值。本文将从多个方面介绍Python的折扣问题,并提供相应的解决方案。 一、Py…

    编程 2025-04-28
  • 如何解决当前包下package引入失败python的问题

    当前包下package引入失败python的问题是在Python编程过程中常见的错误之一。 它表示Python解释器无法在导入程序包时找到指定的Python模块。 正确地说,Pyt…

    编程 2025-04-28
  • Python存款买房问题

    本文将会从多个方面介绍如何使用Python来解决存款买房问题。 一、计算存款年限和利率 在存款买房过程中,我们需要计算存款年限和存款利率。我们可以使用以下代码来计算存款年限和利率:…

    编程 2025-04-28

发表回复

登录后才能评论