快捷搜索:

浅谈javascript中关于日期和时间的基础知识,UTC时间转换方法

2019-11-19 17:36栏目:关于澳门金莎
TAG:

星期日  sunday     Sun
星期一  monday     Mon
星期二  Tuesday    Tue
星期三  Wednesday   Wed
星期四  Thursday    Thu
星期五  Fridday    Fri
星期六  Saturday    Sar

1、将字符串日期转换为日期数据类型 如果已经是日期类型,可以省去此步骤。

System.out.println(date);

date = 100000s
day(天) = Math.floor(100000/86400) = 1
hour(小时) = Math.floor((100000%86400)/3600) = 3
minute(分) = Math.floor((100000%3600)/60) = 46
second(秒) = Math.floor(100000%60)=40
console.log(100000 === 1*86400+ 3*3600+ 46*60+40);//true

GMT和UTC的区别
    GMT 手表就是可以显示两个或两个以上时区时间的手表。无论用什么方式,显示多个时区最直接的方法就是在一个表壳里装多枚机芯。不过最经济也最常见的方法还是附加一个带有12 小时或24 小时时标刻度的旋转表圈。旋转表圈的使用方法很简单,将表圈上对应第二时区时间的数字对齐表盘的时针即可,如果表盘时间是伦敦时间,那么将表圈顺时针转动一小时,指示的就是欧洲大陆时间,逆时针转动八小时,则是美国西海岸时间。
    将表盘时间设定为家乡时间还是目的地时间取决于使用者的偏好,但由于12 小时手表无法辨别白天晚上,通常还是设定所在地时间比较合理。有一个事件的发生使得GMT 的定义复杂化了:1972 年1 月1日,UTC(协调世界时)成为新的世界标准时间。
    为了方便, 通常记成Universal Time Coordinated。同样为了方便,在不需要精确到秒的情况下,通常也将GMT 和UTC 视作等同。尽管UTC 更加科学更加精确,但是对于手表玩家和收藏者来说,GMT 仍是更加受欢迎的。有不少人认为,UTC 是巴黎图谋世界计时中心地位的一种手段。事实上,它是以原子时为基础,在时刻上尽量接近世界时的一种时间计量系统。它的出现是现代社会对于精确计时的需要。
    原子时与以往的计时系统不同,它非常精确并且不以某地的平均太阳时为基准,但是遇有地球自转速度不均匀,原子时与世界时之间的时差便日积月累,因 此,UTC 会在一段时期后加上正或负的闰秒来补偿。因此协调世界时与国际原子时(TAI) 之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS) 负责决定何时加入闰秒。

 

YYYY    公历中年的十进制数字,如果这个参数值在0-99之间,则向它加上1900
-      在字符串中直接以“-”(破折号)出现两次
MM     一年中的月份,从01(一月)到12(十二月)
DD     月份中的日期,从01到31
T      在字符串中直接以“T”出现,用来表明时间元素的开始
HH     用两个十进制数字表示的,自午夜0点以来的小时数
:      在字符串中直接以“:”(冒号)出现两次
mm     是用两个十进制数字表示的,自小时开始以来的分钟数
ss     是用两个十进制数字表示的,自分开始以来的秒数
.      在字符串中直接以“.”(点)出现
sss     是用三个十进制数字表示的,自秒开始以来的毫秒数
Z      是时区偏移量,由(“Z”(指UTC)或“+”或“-”)和后面跟着的时间表达式hh:mm组成

您可能感兴趣的文章:

  • JavaScript将当前时间转换成UTC标准时间的方法
  • JavaScript 中的日期和时间及表示标准介绍
  • js 时间格式与时间戳的相互转换示例代码
  • 时间戳转换为时间 年月日时间的JS函数
  • javascript日期转换 时间戳转日期格式
  • js时间日期和毫秒的相互转换
  • 把时间戳转换为日期格式的js代码
  • js与C#进行时间戳转换
  • Javascript的时间戳和php的时间戳转换注意事项
  • javascript 日期时间 转换的方法
  • JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法

     * @param gmtUnixTime GTM时间戳

在javascript中,月的计算从0开始,所以1-12月,分别用0-11来表示;而日的计算则从1开始,1就代表第1天,以此类推

var utc = Date.UTC(y,m,d,h,M,s);

    

在介绍Date对象之前,首先要先了解关于日期和时间的一些知识。比如,闰年、UTC等等。深入了解这些,有助于更好地理解javascript中的Date对象。本文将介绍javascript关于日期和时间的基础知识

可以看到UTC时间实际上是一串以自1970年以来的毫秒数表示的长数字。

calendar2.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND));

年分为闰年和平年,平年有365天,闰年有366天,闰年的2月比平年多一天

    北京时间与格林尼治时间或UTC时间相差8个时区,北京、上海、重庆位于东8区,所以北京时间2013-1-1 0:00:00,转换为UTC时间为:Tue Jan 1 00:00:00 UTC+0800 2013,时间过了8小时。
二、本地时间到UTC时间的转换   当地时间到UTC时间的转换,步骤如下:

        {

闰年的定义是(可被4整除)且((不可被100整除)或(可被400整除))的年份

以上就是本文的全部内容,希望对大家的学习有所帮助。

            else

一年有12个月,其中4、6、9、11月每月有30天;如果是闰年,2月有29天,否则 ,2月有28天。1、3、5、7、8、10、12月每月有31天

三、UTC日期到本地日期的转换 UTC日期到本地日期转换则要简单得多,先将UTC时间转换为日期格式,然后再转换为本地日期格式,例如:

     * 将GMT日期格式化为系统默认时区的日期字符串表达形式

星期是从星期日开始,到星期六结束,分别用0-6来表示

---------------------------------------------
date:2013-0-1 0:00:00
原日期:2013-01-01 00:00:00.0
d2:1356969600000
d3:Tue Jan 1 00:00:00 UTC+0800 2013
d4:2013年1月1日 0:00:00
d5:1,356,969,600,000.00

 * 修改时间:

地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。现在的标准时间——世界协调时间(UTC)提供

//日期加减计算 
function dateadd(sdate, delta, ymdh){ 
 if(!sdate ) return; 

 if(typeof sdate == 'object') sdate = sdate.toLocaleString(); 

 /(d{4})[D](d{1,2})[D](d{1,2})[D]?s(d{1,2}):(d{1,2}):(d{1,2})/.exec(sdate); 
 var a = [0,0,0,0]; 

 switch(ymdh){ 
  case 'y': 
   a = [delta, -1, 0, 0]; 
   break; 
  case 'm': 
   a=[0, delta-1, 0, 0]; 
   break; 
  case 'H': 
   a=[0, -1, 0, delta]; 
   break;  
  default: 
   a = [0, -1, delta, 0]; 
   break;   
 } 

 println('date:' + (parseInt(RegExp.$1)+ a[0]) + '-'+ (parseInt(RegExp.$2)+a[1]) +'-' + (parseInt(RegExp.$3)+a[2]) 
  + ' ' + (parseInt(RegExp.$4)+a[3]) +':' + RegExp.$5 + ':' +RegExp.$6); 

 return new Date(parseInt(RegExp.$1)+ a[0], parseInt(RegExp.$2)+a[1], parseInt(RegExp.$3)+a[2], parseInt(RegExp.$4)+a[3], RegExp.$5,RegExp.$6); 
} 

 //UTC转换 
 println('---------------------------------------------'); 
 var sdate='2013-01-01 00:00:00.0'; 
 var d = dateadd(sdate,0); 
 var d2 = Date.UTC(d.getUTCFullYear(),d.getUTCMonth() ,d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds()); 
 println('原日期:' + sdate); 
 println('d2:' + d2); 
 println('d3:' + new Date(d2)); 
 println('d4:' + new Date(d2).toLocaleString()); 
 println('d5:' + d2.toLocaleString()); 

                        if(weeks < 3)

日期时间字符串格式

或只要时间

    /**

一月    Jan January
二月    Feb February
三月    Mar March
四月    Apr April
五月    May May
六月    Jun June
七月    Jul July
八月    Aug August
九月    Sep September
十月    Oct October
十一月   Nov November
十二月   Dec December

一、前言
1、UTC: Universal Time Coordinated,协调世界时。
2、格林尼治标准时(GMT)
    格林尼治标准时间(Greenwich Mean Time,GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。 理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。 地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。现在的标准时间——协调世界时(UTC)——由原子钟提供。 自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息。而UTC是基于标准的GMT提供的准确时间。
    GMT(Greenwich Mean Time)——格林尼治标准时间,格林尼治标准时间是19 世纪中叶大英帝国的基准时间,同时也是事实上的世界基准时间。当时主要为了1840 年之后的铁路系统服务。它以格林尼治天文台的经线为0 度经线,将世界分为24 个时区,除了在特定时期受到仇外心理、民族主义和某些反英心绪的影响之外,它的地位一直未曾动摇。

     * @return %s小时%s分%s秒

日期时间完整格式为:  YYYY-MM-DDTHH:mm:ss.sssZ

可利用下面示例中的函数进行转换。
2、获取UTC日期数据 包括年月日,时分秒,使用getUTC***()方法获取。

        {

在军事中,协调世界时区会使用“Z”来表示。又由于Z在无线电联络中使用“Zulu”作代称,协调世界时也会被称为"Zulu time"

var localeTimeString = date2.toLocaleTimeString();

在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范。

在javascript中,各星期的简写经常在日期字符串中使用

var date2 = new Date(utc);

var localeString = date2.toLocaleString();

    输出结果为:image

理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟

或只要日期

四、Android关于日期的工具类

闰年

测试结果:

     * */

只表示日期的格式:  YYYY YYYY-MM YYYY-MM-DD

这里,y、m、d、h、M、s分别代表步骤2中获取的年、月、日、时、分、秒数值。

 

格林尼治标准时间(GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线

注意:这里使用没有UTC的方法是有问题(例如:date.getFullYear,date.getMonth),在进行下一步转换时,会出现结果错误。

 * 日期工具类(未特别说明的均为系统默认时区下的时间)

世界协调时间(UTC)又称世界统一时间,世界标准时间,国际协调时间,全称Coordinated Universal Time,是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统

实例:

 

GMT

获取年:var y =  date.getUTCFullYear();   
获取月: var m = date.getUTCMonth() ;
获取日: var d = date.getUTCDate();
获取小时:var h= date.getUTCHours();
获取分钟:var M = date.getUTCMinutes();
获取秒钟:var s = date.getUTCSeconds();

     * @param gmtUnixTime GTM时间戳

Date对象返回的是一个毫秒数,经常需要将其换算成时分秒的形式

var localeDateString = date2.toLocaleDateString();

    {

标准时间一般而言的标准时间是指GMT和UTC,以前是GMT,现在是UTC

这里date为日期类型数据。

                    strTime = "1小时前";

这套时间系统被应用于许多互联网和万维网的标准中,中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8

3、使用Date.UTC()函数进行转换 将第2步中获取的日期数据转换为UTC时间(实际上为自1700年以来的毫秒数)

Date date = new Date(1359641834000L);

function IsLeapYear(year){
  if(typeof year == 'number'){
    if((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0){
      return 'leap year'
    }else{
      return 'common year'
    }
  }
  return 'please input number'
}


console.log(IsLeapYear(4));//'leap year'
console.log(IsLeapYear(400));//'leap year'
console.log(IsLeapYear(2000));//'leap year'
console.log(IsLeapYear(1900));//'common year'

        return dateTmp;

您可能感兴趣的文章:

  • javascript时间戳和日期字符串相互转换代码(超简单)
  • JS 日期与时间戮相互转化的简单实例
  • js和C# 时间日期格式转换的简单实例
  • js获取当前日期时间及其它日期操作汇总
  • 原生javascript实现自动更新的时间日期
  • JS获取时间的相关函数及时间戳与时间日期之间的转换
  • js时间戳转为日期格式的方法

     * */

[注意]所有数字必须是10进制的。如果缺少MM或DD字段,用“01”作为它们的值。如果缺少mm或ss字段,用“00”作为它们的值,对于缺少的sss用“000”作为它的值。对于缺少的时区偏移量用“Z”

        long mm = (seconds - hh * TIME_NUMBERS * TIME_NUMBERS) > 0 ? (seconds - hh * TIME_NUMBERS * TIME_NUMBERS) / TIME_NUMBERS : 0;

ECMAScript定义了一个基于简化的ISO8601扩展格式的日期时间的字符串互换格式

    

以上这篇浅谈javascript中关于日期和时间的基础知识就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

 

星期

 

[注意]前置0不能省略,否则在完整格式的情况下会报错

        {

UTC

        // 获取当前时区下日期时间对应的时间戳

时分秒

     * @return Date对象的字符串表达形式

在javascript中,月份的简写经常在日期字符串中使用

    {  

月日

     * 获取更改时区后的时间 

前面的话

    /** 1s==1000ms */

口诀是:四年一闰,百年不闰,四百年再闰

Calendar calendar2 = Calendar.getInstance();  

1天 = 24小时 = 24*60(1440)分 = 24*60*60(86400)秒 = 86,400,000毫秒
  1分= 60秒
  1小时 = 3600秒
  1天 = 86400秒

    public static TimeZone getTimeZone()

if(month == 2){
  //如果是闰年
  if((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0){
    days = 29;
  //如果是平年
  }else{
    days = 28;
  }
//如果是第4、6、9、11月
}else if(month == 4 || month == 6 ||month == 9 ||month == 11){
  days = 30;
}else{
  days = 31;
}

    

    public static String formatUnixTime(long unixTime)

System.out.println(calendar.getTime());  

    public static Date changeTimeZone(Date date, TimeZone oldZone, TimeZone newZone) 

    

     * @return 日期字符串的Date对象表达形式

                + (mm == 0 ? "" : (mm < 10 ? "0" + mm : mm) + "分") 

     * */

    /**

    /** 时间中的分、秒最大值均为60 */

 

 

    }

    /**

        }

 * 

                        int weeks = days / 7;

            strTime = "刚刚";

    /** 时间中的小时最大值 */

/**

        long ss = seconds < TIME_NUMBERS ? seconds : seconds % TIME_NUMBERS;

    /**

     * */

 

// Date还是按系统默认时区,而format格式化处来的字符串是GMT,所以要-8。

import java.util.Calendar;

    private final static String FORMAT = "yyyy-MM-dd HH:mm:ss";

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);  

    }

  Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方法,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

     * @param format 格式化字符串

    }

                    {

    在开发中,我们可以通过TimeZone对象获取关于系统默认时区及其相关的详细信息。

     * @param long date 日期

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);

        Date dateTmp = null;

            int min = (int)(time / TIME_MILLISECONDS / TIME_NUMBERS);

                        }

 

{

calendar.setTimeZone(TimeZone.getTimeZone("GMT"));  

     * @return GMT Unix时间戳

                    if(days <= 6)

                    strTime = "半小时前";

    e.printStackTrace();  

     * @return 系统默认时区的Unix时间戳

     * 获取时间戳的Date表示形式

    {

package com.bhj.timetest;

    }

    {

     * 获取当前时间的GMT Unix时间戳

                }

 * 修 改 人:

                int hh = min / TIME_NUMBERS;

    /**

calendar.setTime(date);

            dt = dateFormat.parse(date);

        // 获取标准格林尼治时间下日期时间对应的时间戳 

 

    }

 

一、Unix时间戳

        return unixTime - TimeZone.getDefault().getRawOffset();

            {

        }

    /**

 * 文件标识:

    }

                }

     * @return 日期字符串的Date对象表达形式

     * @param long unixTime unix时间戳

     */  

        return formatDate(date, FORMAT);  

 

            }

    {

    System.out.println(dateTmp);

            int timeOffset = oldZone.getRawOffset() - newZone.getRawOffset();

    简单来说,使用夏令时和冬令时即在夏季将时间拨快一个小时,等到冬季再将时间拨慢一个小时。

     * @return Date对象

     * @param oldZone 旧时区 

 * 文件名称:

        {

 

    

    }

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

     * 将总秒数转换为时分秒表达形式

     * */

    /**

    public static String formatDate(Date date)

    /** 

 * Copyright (C) 2011, BHJ

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

    public static Date getGMTDate(long gmtUnixTime)

    }

 * 当前版本:

     * @param date 日期字符串,必须为"yyyy-MM-dd HH:mm:ss"

System.out.println(dateStrTmp);

 

    }

// 或者可以 Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));  

                }

}

        try

     * @return 日期字符串

    {  

 

        if (date != null)

    /**

        Calendar calendar = Calendar.getInstance();

    }

     * */

    public static long getGMTUnixTime(long unixTime)

     * */

 

     * @return Date对象的字符串表达形式"yyyy-MM-dd HH:mm:ss"

    public static long getUnixTimeByCalendar()

 

    {

        catch(ParseException e)

                    }

        return dateFormat.format(gmtUnixTime + TimeZone.getDefault().getRawOffset()); 

     * 格式化日期

                else if(min < 30)

     * */

                {

 

 * 作    者:

        return gmtUnixTime + TimeZone.getDefault().getRawOffset();

    }

     * @param date 日期字符串,必须为"yyyy-MM-dd HH:mm:ss"

    /**

        return new Date(unixTime);  

System.out.println(calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE));

 

String dateStrTmp = dateFormat.format(date);  

 

        Date dt = null;

        return dt;

二、规范

 * 

    }

     * 将Date对象转换为指定格式的字符串

 

 

                {

            {

     * @param seconds 任意秒数

 

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);  

 

 

    

            e.printStackTrace();

        if(time < TIME_NUMBERS * TIME_MILLISECONDS)

            if(min < TIME_NUMBERS)

                + (ss == 0 ? "" : (ss < 10 ? "0" + ss : ss) + "秒");

    输入结果为:image

    又称国际原子时,是一种通过原子钟得到的时间标准,原子钟是世界上已知最准确的时间测量和频率标准,原子钟在 37 亿年的误差不超过 1 秒。

    基本上UTC的本质强调的是比GMT更精确的世界时间标准,UTC中多一个闰秒的调整,以确保协调世界时(UTC)与格林尼治平时(GMT)相差不会超过0.9秒,并在有需要的时候在协调世界时(UTC)内加上正或负闰秒。

    UTC被应用在大多数的计算机以及网络标准中。

    public static String formatGMTUnixTime(long gmtUnixTime, String format)

    private final static int TIME_NUMBERS = 60;

        // 获取当前时区下日期时间对应的时间戳

                }

三、在Android中需要特别注意的事项

import java.util.TimeZone;

     * 获取时区信息

     * */

import java.util.Date;

  2、SimpleDateFormat对象本身也是跟时区相关。

 

 

try

     * @param date Date对象

     * 将日期字符串转换为Date对象

     * @return Date对象

        return formatUnixTime(unixTime, FORMAT);

 

     * */

     * */

     * */

        long unixTime = calendar.getTimeInMillis();

     * 将日期字符串转换为Date对象

                else

 * */

  3、夏令时与冬令时:Daylight Saving Time(DST)

    

 */

/**

                        {

     * @param unixTime unix时间戳

        return dateFormat.format(date);  

  4、CST

    

// 2013-1-31 22:17:14

        long hh = seconds / TIME_NUMBERS / TIME_NUMBERS;

    }

            }

    public static long getGMTUnixTimeByCalendar()

     * 获取当前时间距离指定日期时差的大致表达形式

        else

                    {

    

  2、世界时:Universal Time(UT)

 

     * @param String format 格式化字符串

    在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。格林尼治标准时间(旧译格林尼治平均时间或格林威治标准时间,英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息。

        }

     * 将系统默认时区的Unix时间戳转换为GMT Unix时间戳

                    int days = hh / TIME_HOURSES;

    /**

dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));

    当使用parse将一个字符串格式的日期转换为Date对象,或者将一个Date对象转换为字符串日期时,这个字符串日期的时区以SimpleDateFormat关联的时区为准,如果通过setTimeZone修改了时区,则这个字符串日期以修改后的时区为准。例如:

     北京时间,China Standard Time UT+8:00

    /**

     * @param String format 格式化字符串

        return TimeZone.getDefault();

{

 

    /**

        long unixTime = calendar.getTimeInMillis();

     * */

    private final static int TIME_HOURSES = 24;

     * */

 * 修改摘要:

                    strTime = hh + "小时前";

     * 获取GMT时间戳的Date表示形式(转换为Date表示形式后,为系统默认时区下的时间)

    {

 * 

    public static String formatDate(Date date, String format)

  4、TimeZone

  1、Android中表示日期时间的类型,有Date、Calendar,他们在没有显示设置其时区时,取到的当前时间均为系统默认时区的时间,即使给定一个时间,同样是按系统默认时区来换算时间,所以说他们都是与时区相关的。

    {

     澳洲中部时间,Central Standard Time (Australia) UT+9:30

import java.text.SimpleDateFormat;

    /**

    又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。自2011年3月27日开始俄罗斯永久使用夏令时,把时间拨快一小时,不再调回。

     * */

        }

        return     (hh == 0 ? "" : (hh < 10 ? "0" + hh : hh) + "小时") 

    /**

}  

    public static Date getDate(long unixTime)

System.out.println(date);

                if(min < 15)

     * @param long unixTime unix时间戳

        {

catch (ParseException e) 

 

        

 

{    

        Calendar calendar = Calendar.getInstance();

                else

 

     * 格式化日期

     中部标准时区(北美洲),Central Standard Time (North America) UT-6:00

                {

     * @param gmtUnixTime GMT Unix时间戳

    {

 * 完成日期:2013-12-20

            dateTmp = new Date(date.getTime() - timeOffset);

    

 

                    else

        // 一分钟以内

        return formatGMTUnixTime(gmtUnixTime, FORMAT); 

     * @param gmtUnixTime GMT Unix时间戳

    public static String formatUnixTime(long unixTime, String format)

    又称世界标准时间、世界统一时间。是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以“秒”为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以“世界标准时间”的角度来说,UTC比GMT更精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。

Calendar calendar = Calendar.getInstance();

    public static String getDiffTime(long date)

    Date dateTmp = dateFormat.parse(dateStr);

                if(hh < TIME_HOURSES)

    CST同时代表澳大利亚、美国、中国、古巴四个国家的标准时间,时区分别为:

 * All rights reserved.

     * 将Date对象转换为指定格式的字符串

     * 获取当前时间的Unix时间戳

     * @return 时差的大致表达形式

                    }

                {

        long unixTimeGMT = unixTime - TimeZone.getDefault().getRawOffset();

import java.text.ParseException;

    }

    /**

        return strTime;

    /**

    }

                            strTime = weeks + "周前";    

     * 将GMT日期格式化为系统默认时区的日期字符串表达形式

    public static Date parseDate(String date)

        return new Date(gmtUnixTime + TimeZone.getDefault().getRawOffset()); 

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

    

        return unixTimeGMT;

    /**

 

  在实际开发中,当时间用于显示时,非特殊要求下一般使用系统默认的时区时间作为显示时间。将时间做为数据存储或传递给其他系统时(特别是跨平台调用),则最好使用标准的UTC/GMT时间(后面统称GMT),除非事先约定或标识了时间的类型。

二、关于时间标准和时区

        return unixTime;

     * */

    public static String formatTime(long seconds)

                    strTime = "一刻钟前";

     * @param date Date对象

    }

String dateStr = "2013-1-31 22:17:14";

     * @param date 时间 

public class DateUtil

        return parseDate(date, FORMAT);

     * 将GMT Unix时间戳转换为系统默认时区的Unix时间戳

    {

    {

 

    {

     古巴标准时间,Cuba Standard Time UT-4:00

    public static long getCurrentTimeZoneUnixTime(long gmtUnixTime)

     * @return 当前的GMT Unix时间戳

 * 取代版本:

     * @return 时间

    // 对于已经设定为GMT时间标准的dateFormat来说,一切需要他转换的字符串日期都是GMT标准时间,转换后返回的Date由于默认遵守系统默认时区,所以转换给Date的日期需要+8(例如北京标准时区),也就是时区与标准不同导致的时差。

    是一种以格林尼治子夜起算的平太阳时。世界时是以地球自转为基准得到的时间尺度,其精度受到地球自转不均匀变化和极移的影响,为了解决这种影响,1955年国际天文联合会定义了UT0、UT1和UT2三个系统,他们三者之间是递进的关系,后者都是发现前者的一些度量差别,通过修正得到更均匀的时标。

    {

 

    

        String strTime = "很久很久以前";

     * @return 当前的Unix时间戳

        long time = Math.abs(new Date().getTime() - date);

    public static Date parseDate(String date, String format)

    {

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

 * 文件摘要:

    

    private final static int TIME_MILLISECONDS = 1000;

     * @param format 格式化字符串

        return dateFormat.format(unixTime);  

  3、Calendar在不手动设置时区时,是与系统默认时区相关的。在手动修改时区后,不能使用calendar.getTime方法来直接获取Date日期,因为此时的日期与setTime时的值相同,想要正确获取修改时区后的时间,应该通过calendar的get方法。例如:

     * @param unixTime unix时间戳

    }

 

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);

  2、协调世界时:Coordinated Universal Time(UTC)

        

    {

    

        }

    {

                {

    public static String formatGMTUnixTime(long gmtUnixTime)

  在开发时我们需要注意不同国家的时区,并且UTC和GMT在计算机系统中使用并无明显差别,可视为等同。

    /** 格式化日期的标准字符串 */

System.out.println(calendar2.getTime());

 

     * @param newZone 新时区 

     */

  1、原子时:International Atomic Time (IAT)

                }

    }

Date date = new Date(1359641834000L);

    

    {  

                        strTime = days + "天前";

版权声明:本文由澳门金莎娱乐发布于关于澳门金莎,转载请注明出处:浅谈javascript中关于日期和时间的基础知识,UTC时间转换方法