精华内容
下载资源
问答
  • //转换服务器时区为东八区 TimeZone timeZoneSH = TimeZone.getTimeZone(“Asia/Shanghai”); SimpleDateFormat outputFormat = new SimpleDateFormat(“yyyy年MM月dd日HH时mm分ss秒”, Locale.CHINA); output...

    //转换服务器时区为东八区
    TimeZone timeZoneSH = TimeZone.getTimeZone(“Asia/Shanghai”);
    SimpleDateFormat outputFormat = new SimpleDateFormat(“yyyy年MM月dd日HH时mm分ss秒”, Locale.CHINA);
    outputFormat.setTimeZone(timeZoneSH);
    Date date = new Date(System.currentTimeMillis());
    String time = outputFormat.format(date);

    展开全文
  • 如何使用Java获取时区的当前日期和时间?我的应用托管在伦敦服务器中。 我在西班牙马德里。 因此,时区为-2小时。如何获取带有时区的当前日期/时间。Date curr_date = new Date(System.currentTimeMillis());例如...

    如何使用Java获取时区的当前日期和时间?

    我的应用托管在伦敦服务器中。 我在西班牙马德里。 因此,时区为-2小时。

    如何获取带有时区的当前日期/时间。

    Date curr_date = new Date(System.currentTimeMillis());

    例如

    Date curr_date = new Date(System.currentTimeMillis("MAD_TIMEZONE"));

    与Joda-Time

    DateTimeZone zone = DateTimeZone.forID("Europe/Madrid");

    DateTime dt = new DateTime(zone);

    int day = dt.getDayOfMonth();

    int year = dt.getYear();

    int month = dt.getMonthOfYear();

    int hours = dt.getHourOfDay();

    int minutes = dt.getMinuteOfHour();

    10个解决方案

    88 votes

    java.time.ZonedDateTime始终基于UTC ...或时区中立,具体取决于您要如何查看。 java.time.ZonedDateTime仅代表一个时间点; 它独立于时区,距离Unix时代仅几毫秒。 没有“ DateTime的本地实例”的概念。 将Date与27413176823007160160和/或java.time.ZonedDateTime结合使用以使用“本地”时区。 使用TimeZone.getTimeZone("Europe/Madrid")获取马德里时区。

    ...或使用Joda Time,这会使整个事情变得更加清晰,IMO。 在“乔达时间”中,您将使用java.time.ZonedDateTime值,该值是特定日历系统和时区中的即时时间。

    在Java 8中,您将使用java.time.ZonedDateTime,这与Joda Time的DateTime在Java 8中等效。

    Jon Skeet answered 2020-02-10T11:09:41Z

    52 votes

    正如乔恩·斯基特(Jon Skeet)所说,SimpleDateFormat没有时区。 DateFormat对象表示自UTC 1970年1月1日上午12:00开始的毫秒数。 它不包含时区信息。

    当您将日期对象格式化为字符串时(例如,使用2741318187187177477120),则可以在DateFormat对象上设置时区,以使其知道要在哪个时区中显示日期和时间:

    Date date = new Date();

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

    // Use Madrid's time zone to format the date in

    df.setTimeZone(TimeZone.getTimeZone("Europe/Madrid"));

    System.out.println("Date and time in Madrid: " + df.format(date));

    如果要运行程序所在计算机的本地时区,请使用:

    df.setTimeZone(TimeZone.getDefault());

    Jesper answered 2020-02-10T11:10:11Z

    16 votes

    使用日历很简单:

    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Europe/Madrid"));

    Date currentDate = calendar.getTime();

    dfa answered 2020-02-10T11:10:31Z

    9 votes

    使用Java 8和更高版本中内置的java.time类:

    public static void main(String[] args) {

    LocalDateTime localNow = LocalDateTime.now(TimeZone.getTimeZone("Europe/Madrid").toZoneId());

    System.out.println(localNow);

    // Prints current time of given zone without zone information : 2016-04-28T15:41:17.611

    ZonedDateTime zoneNow = ZonedDateTime.now(TimeZone.getTimeZone("Europe/Madrid").toZoneId());

    System.out.println(zoneNow);

    // Prints current time of given zone with zone information : 2016-04-28T15:41:17.627+02:00[Europe/Madrid]

    }

    Zeeshan answered 2020-02-10T11:10:51Z

    3 votes

    检查这可能会有所帮助。 对我来说很好。 该代码还涵盖了夏令时

    TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");

    Calendar cal = Calendar.getInstance();

    // If needed in hours rather than milliseconds

    int LocalOffSethrs = (int) ((cal.getTimeZone().getRawOffset()) *(2.77777778 /10000000));

    int ChinaOffSethrs = (int) ((tz.getRawOffset()) *(2.77777778 /10000000));

    int dts = cal.getTimeZone().getDSTSavings();

    System.out.println("Local Time Zone : " + cal.getTimeZone().getDisplayName());

    System.out.println("Local Day Light Time Saving : " + dts);

    System.out.println("China Time : " + tz.getRawOffset());

    System.out.println("Local Offset Time from GMT: " + LocalOffSethrs);

    System.out.println("China Offset Time from GMT: " + ChinaOffSethrs);

    // Adjust to GMT

    cal.add(Calendar.MILLISECOND,-(cal.getTimeZone().getRawOffset()));

    // Adjust to Daylight Savings

    cal.add(Calendar.MILLISECOND, - cal.getTimeZone().getDSTSavings());

    // Adjust to Offset

    cal.add(Calendar.MILLISECOND, tz.getRawOffset());

    Date dt = new Date(cal.getTimeInMillis());

    System.out.println("After adjusting offset Acctual China Time :" + dt);

    Subhamay answered 2020-02-10T11:11:11Z

    2 votes

    您将为此使用JodaTime。 关于TimeZone,Java.util.Date非常受限制。

    Joshua Partogi answered 2020-02-10T11:11:31Z

    1 votes

    我无法使用日历来工作。 您必须使用DateFormat

    //Wednesday, July 20, 2011 3:54:44 PM PDT

    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

    df.setTimeZone(TimeZone.getTimeZone("PST"));

    final String dateTimeString = df.format(new Date());

    //Wednesday, July 20, 2011

    df = DateFormat.getDateInstance(DateFormat.FULL);

    df.setTimeZone(TimeZone.getTimeZone("PST"));

    final String dateString = df.format(new Date());

    //3:54:44 PM PDT

    df = DateFormat.getTimeInstance(DateFormat.FULL);

    df.setTimeZone(Timezone.getTimeZone("PST"));

    final String timeString = df.format(new Date());

    wjin answered 2020-02-10T11:11:51Z

    0 votes

    这是一个例子:

    Calendar c = Calendar.getInstance(TimeZone.getDefault());

    Date date = c.getTime();

    Martijn Courteaux answered 2020-02-10T11:12:10Z

    0 votes

    以下是为您的区域找到时间的一些步骤:

    现在的日期=新的Date();

    DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

    df.setTimeZone(TimeZone.getTimeZone("Europe/London"));

    System.out.println("timeZone.......-->>>>>>"+df.format(now));

    shan answered 2020-02-10T11:12:35Z

    -2 votes

    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

    df.setTimeZone(TimeZone.getTimeZone("PST"));

    final String dateTimeString = df.format(new Date());

    shamim answered 2020-02-10T11:12:50Z

    展开全文
  • 关于java获取系统时间,有偏差时(早八小时)关键词:java获取系统时间错误,服务器获取系统时间错误,偏差,java设置时区TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); // 设置时区(如果不设置...
    关于java获取系统时间,有偏差时(早八小时)
    关键词:java获取系统时间错误,服务器获取系统时间错误,偏差,java设置时区

    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); // 设置时区(如果不设置时区,得到时间将晚8小时)
    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));// 使用默认时区和语言环境获得一个日历。
    vo.setDTFLOWTIME(new Timestamp(cal.getTime().getTime()));// 操作时间




    不管是用这种方式获取系统时间
    Calendar cal = Calendar.getInstance();
    new Timestamp(cal.getTime().getTime())

    还是这种
    new Timestamp(new Date().getTime());

    都会出现错误


    解决办法:
    设置时区,
    // 设置时区(如果不设置时区,得到时间将晚8小时)
    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
    // 使用默认时区和语言环境获得一个日历。
    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
    vo.setDTFLOWTIME(new Timestamp(cal.getTime().getTime()));// 操作时间
    展开全文
  • java获取指定时区的时间

    千次阅读 2018-05-04 11:29:04
    由于公司的服务器在国外有,国内也有,但是项目都是同一份,所以所有关于时间的部分,都需要统一,尤其是用户下单之类的,涉及到订单15分钟超时失效问题,所以就更应该统一,目前我们是都统一成东八区北京时间,具体...

    最近,由于公司的服务器在国外有,国内也有,但是项目都是同一份,所以所有关于时间的部分,都需要统一,尤其是用户下单之类的,涉及到订单15分钟超时失效问题,所以就更应该统一,目前我们是都统一成东八区北京时间,具体代码如下,如果哪位大神发现代码有问题,请留言指教


    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.SimpleTimeZone;
    import java.util.TimeZone;
    
    /**
     * 时区工具 
     * @author Administrator
     *
     */
    public class TimeZoneUtil {
    
        /**
         * 取北京时间,格式:yyyy-MM-dd HH:mm:ss
         * @return
         */
        public static String getBeijingTime(){
            return getFormatedDateString(8);
        }
        
        /**
         * 取班加罗尔时间
         * @return
         */
        public static String getBangaloreTime(){
            return getFormatedDateString(5.5f);
        }
        
        /**
         * 取纽约时间
         * @return
         */
        public static String getNewyorkTime(){
            return getFormatedDateString(-5);
        }
        
        /**
         * 此函数非原创,从网上搜索而来,timeZoneOffset原为int类型,为班加罗尔调整成float类型
         * timeZoneOffset表示时区,如中国一般使用东八区,因此timeZoneOffset就是8
         * @param timeZoneOffset
         * @return
         */
        public static String getFormatedDateString(float timeZoneOffset){
            if (timeZoneOffset > 13 || timeZoneOffset < -12) {
                timeZoneOffset = 0;
            }
            
            int newTime=(int)(timeZoneOffset * 60 * 60 * 1000);
            TimeZone timeZone;
            String[] ids = TimeZone.getAvailableIDs(newTime);
            if (ids.length == 0) {
                timeZone = TimeZone.getDefault();
            } else {
                timeZone = new SimpleTimeZone(newTime, ids[0]);
            }
        
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            sdf.setTimeZone(timeZone);
            return sdf.format(new Date());
        }
        
        public static void main(String[] args) {
    		String bjTime = getBeijingTime() ;
    		System.out.println(bjTime);
    		String newyorkTime = getNewyorkTime() ;
    		System.out.println(newyorkTime);
    	}
    	
    }
    

    展开全文
  • 参见英文答案 >...4个我需要将服务器时间转换为用户的时间,具体取决于他们的时区.这是通过使用HttpServletRequest对象来确定其时区的最佳方法吗?Locale clientLocale = request.getLocale();C...
  • 你的操作系统应该是中国的时区吧,而JVM的时区不一定是中国时区,你在应用服务器Java虚拟机添加如下配置: -Dfile.encoding=UTF8 -Duser.timezone=GMT+08在一个精简的Linux安装上jre,发现所有的java程序获取的...
  • 遇到问题: 服务器java时区少了8个小时 ...在Java应用中获取时区 启动类中加入下面的代码: 本地输出:Asia/Shanghai 中国标准时间 服务器上输出:Etc/UTC Coordinated Universal Time ...
  • Docker 服务器java查询时区问题

    千次阅读 2017-06-13 14:08:08
    最近遇到时区问题,着实让人纠结,服务器不是内地的,所以当部署应用的时候出现了时间少8个钟或者多8个钟的问题. 设docker时间与服务器宿主机同步后,数据库时间插入的时间和查询时间都正确了.但是,直接用LocaldateTime....
  • 比如数据的创建时间createDate,不考虑时区的情况下,我们都是直接在服务器通过System.currentTimeMillis() 或者 new Date().getTime()获取,也就是按照服务器时区获取的毫秒数。有时区的情况下呢?问题1:毫秒数...
  • 我在美国的Ubuntu服务器中运行一个Java应用程序,并配置了CEST时区。如果我在终端中运行Date命令,它将以CEST Zone时间返回日期-这是完美的。但是在Java中,如果我运行以下代码System.out.println (new Date ());它...
  • Java+mysql时区处理

    2021-04-07 15:21:26
    Java的Date类型,是一个绝对时间值,是根据当前服务器时间获取的,服务器的时间和时区需要正确配置,至于配什么时间+时区无所谓,重要的是绝对时间是对的。 Mysql中的时间存储 mysql的DateTime类型,可以认为是...
  • 你的操作系统应该是中国的时区吧,而JVM的时区不一定是中国时区,你在应用服务器Java虚拟机添加如下配置: -Dfile.encoding=UTF8 -Duser.timezone=GMT+08在一个精简的Linux安装上jre,发现所有的java程序获取的...
  • org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain... nested exception is java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or rep...
  • 由于服务器时区不是东八区,且不方便修改服务器时区,而存数据库的需要是北京时间的datetime类型,目前用的方法如下: ``` public static Date getCurrentDate() { LocalDateTime datetime = LocalDateTime....
  • Java程序时区错误

    2020-11-26 22:02:05
    1、问题现象 用命令查看服务器显示: # date +"%Z %::z" CST +08:00:00 使用 jinfo 查看Java程序使用...通过Oracle的官方文档,我们可以知道其默认时区获取方式: Use the user.timezone property value as the de
  • 我必须将UTC dateTime存储在DB中。我已将特定时区中给定的dateTime转换为UTC。...我的服务器/数据库(oracle)在同一时区(IST)“ Asia / Calcutta”中运行获取此特定时区中的Date对象String date = "20121225...
  • 我这个项目的客户端启动之后会从服务端获取系统时间,然后更新本地时间。但我发现每次启动客户端后,本地时间都会被改为8小时之前。起初我以为是服务器上系统时间错了,也就没管,一直以8小时前的本地时间进行调试。...
  • Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间本文专门解决开发中获取系统时间,发现时间不准确,会早/晚N个小时,我在开发中遇到过几次,后来尝试用时区的办法获取当地时间,可以完美解决时间不准确的...
  • java获取系统时间存在时差

    千次阅读 2013-09-13 18:43:25
    发布的项目使用64位JDK,Java获取的时间总比正常的时候慢8小时,但服务器的时间及时区都是正确的,解决方法: 设置JVM的默认时区为东八区(北京时间) 在下面四个目录: Java\jre6\lib\zi\Etc Java\jre6\lib\zi ...
  • 本文专门解决开发中获取系统时间,发现时间不准确,会早/晚N个小时,我在开发中遇到过几次,后来尝试用时区的办法获取当地时间,可以完美解决时间不准确的问题,不用担心服务器时间准不准确的问题。 /** * 取北京...
  • 我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。查看系统的时区:root@...
  • 我们在开发中,很多应用需要读取当前时间来对业务逻辑进行相对可靠的校验,但是我们服务器或者个人电脑上的时间又不一定足够用准确,所以我们需要获取网络时间来进行相对可靠的校验。  下面是Java中读取当前时区的...
  • 你的操作系统应该是中国的时区吧,而JVM的时区不一定是中国时区,你在应用服务器Java虚拟机添加如下配置:-Dfile.encoding=UTF8 -Duser.timezone=GMT+08在一个精简的Linux安装上jre,发现所有的java程序获取的时间...
  • Java时区问题

    2008-10-30 14:46:00
    今天终于解决了服务器和客户端分处不同时区的时间同步问题。long timeVal; //服务器端的GMT(零时区的标准时) int timeZone; //服务器端的时区(有正负) int... //获取客户端时区与GMT的时间偏移量 new Date(
  • 有这样一个需求,通过socket请求别人的服务器获取他们的服务器时间,然后需要用这个时间来修改自己服务器的时间。想到的就是使用Java里面的Process Runtime.getRuntime.exec(String command);这命令来执行一个Linux ...
  • 前言环境:centos 7.x项目语言:java项目中使用 new Date()方法发现取值时间与当前时间相差12个小时左右,第一反应是服务器的时间不正确。在服务器调用命令date[root@localhost soft]# dateWed Jul 1 10:54:31 CST ...
  • 报出的错误Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to ... nested exception is java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecog...
  • java应用程序获取当前时间new Date() 存储数据库时,和系统时间相差14小时。 问题分析 1、登录服务器查看服务器时间和时区 date -R 发现服务器系统时间时区正常。 2、查看应用默认设置的时区 我们系统采用的...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

java获取服务器时区

java 订阅