1. Avant-propos
1. UTC : Temps universel coordonné, temps universel coordonné.
2. Heure moyenne de Greenwich (GMT)
L'heure moyenne de Greenwich (GMT) fait référence à l'heure standard de l'Observatoire royal de Greenwich, dans la banlieue de Londres, car le méridien d'origine est défini comme la longitude qui y passe. Théoriquement, midi dans le temps moyen de Greenwich correspond au moment où le soleil traverse le méridien de Greenwich. En raison du mouvement irrégulier de la Terre sur son orbite elliptique, cette heure peut différer de 16 minutes de l’heure solaire réelle. La rotation quotidienne de la Terre est quelque peu irrégulière et ralentit lentement. Par conséquent, l’heure GMT n’est plus utilisée comme heure standard. L’heure standard d’aujourd’hui – Temps universel coordonné (UTC) – est fournie par des horloges atomiques. Depuis le 5 février 1924, l'Observatoire de Greenwich envoie au monde toutes les heures des informations sur le réglage de l'heure. L'UTC est basé sur l'heure précise fournie par le GMT standard.
GMT (Greenwich Mean Time) - Greenwich Mean Time était l'heure de référence de l'Empire britannique au milieu du XIXe siècle et était également l'heure de référence mondiale de facto. A cette époque, il desservait principalement le système ferroviaire après 1840. Il utilise la longitude de l'Observatoire de Greenwich comme longitude 0 degré et divise le monde en 24 fuseaux horaires. Sauf à être affecté par la xénophobie, le nationalisme et certains sentiments anti-britanniques à certaines heures, son statut n'a jamais été ébranlé.
La différence entre GMT et UTC
Une montre GMT est une montre qui peut afficher l'heure dans deux ou plusieurs fuseaux horaires. Quelle que soit la méthode utilisée, le moyen le plus direct d’afficher plusieurs fuseaux horaires consiste à installer plusieurs mouvements dans un seul boîtier de montre. Cependant, la méthode la plus économique et la plus courante consiste à fixer une lunette tournante avec une échelle de temps de 12 heures ou de 24 heures. La méthode d'utilisation de la lunette tournante est très simple. Il suffit d'aligner le numéro sur la lunette correspondant au deuxième fuseau horaire avec l'aiguille des heures du cadran. Si l'heure du cadran est l'heure de Londres, tournez la lunette dans le sens des aiguilles d'une montre pendant une heure pour. indiquez l'heure de l'Europe continentale, tournez huit heures dans le sens inverse des aiguilles d'une montre, ce qui correspond à l'heure de la côte ouest des États-Unis.
Le fait que l'heure du cadran soit réglée sur l'heure du domicile ou sur l'heure de destination dépend des préférences de l'utilisateur, mais comme la montre de 12 heures ne peut pas faire la distinction entre le jour et la nuit, il est généralement plus raisonnable de régler l'heure locale. Un événement s'est produit qui a compliqué la définition du GMT : le 1er janvier 1972, l'UTC (Temps Universel Coordonné) est devenu le nouveau temps standard universel.
Pour plus de commodité, il est généralement enregistré en temps universel coordonné. Également pour des raisons de commodité, GMT et UTC sont souvent traités comme équivalents lorsqu'une précision à la seconde près n'est pas requise. Bien que l’heure UTC soit plus scientifique et plus précise, l’heure GMT reste plus populaire parmi les horlogers et les collectionneurs. Beaucoup pensent que l'UTC est un moyen pour Paris de devenir le centre mondial du chronométrage. En fait, il s’agit d’un système de mesure du temps basé sur le temps atomique et aussi proche que possible du temps universel. Son émergence est due à la nécessité d’un timing précis dans la société moderne.
Le temps atomique est différent des systèmes de chronométrage précédents. Il est très précis et n'est pas basé sur le temps solaire moyen d'un certain endroit. Cependant, lorsque la vitesse de rotation de la Terre est inégale, la différence de temps entre le temps atomique et le temps universel s'accumule avec le temps. Par conséquent, l'UTC sera en secondes intercalaires positives ou négatives ajoutées après un certain temps pour compenser. Il y aura donc un certain nombre de secondes entières de différence entre le temps universel coordonné et le temps atomique international (TAI). Le Bureau central international pour les affaires de rotation terrestre (IERS) à Paris est chargé de décider quand inclure les secondes intercalaires.
L'heure de Pékin est 8 fuseaux horaires différents de l'heure de Greenwich ou de l'heure UTC. Pékin, Shanghai et Chongqing sont situés dans le 8ème fuseau est, donc l'heure de Pékin 2013-1-1 0:00:00, convertie en heure UTC est. : Mardi 1er janvier 00 :00:00 UTC 0800 2013, 8 heures plus tard.
2. Conversion de l'heure locale en heure UTC
Conversion de l'heure locale en heure UTC, les étapes sont les suivantes :
1. Convertir la date de chaîne en type de données de date
S'il s'agit déjà d'un type de date, vous pouvez omettre cette étape.
Peut être converti à l'aide de la fonction dans l'exemple ci-dessous.
2. Obtenez les données de date UTC
Y compris l'année, le mois, le jour, l'heure, les minutes et les secondes, utilisez la méthode getUTC***() pour obtenir.
Obtenir l'année : var y = date.getUTCFulYear();
Obtenez le mois : var m = date.getUTCMonth();
Obtenez la date : var d = date.getUTCDate();
Obtenez l'heure : var h= date.getUTCHours();
Obtenir des minutes : var M = date.getUTCMinutes();
Obtenir les secondes : var s = date.getUTCSeconds();
La date ici est une donnée de type date.
Remarque : il y a un problème avec l'utilisation de méthodes sans UTC ici (par exemple : date.getFullYear, date.getMonth). Lors de la prochaine conversion, une erreur de résultat se produira.
3. Utilisez la fonction Date.UTC() pour convertir
Convertissez les données de date obtenues à l'étape 2 en heure UTC (en fait, en millisecondes depuis 1700)
var utc = Date.UTC(y,m,d,h,M,s);
这里,y、m、d、h、M、s分别代表步骤2中获取的年、月、日、时、分、秒数值。
三、UTC日期到本地日期的转换
UTC日期到本地日期转换则要简单得多,先将UTC时间转换为日期格式,然后再转换为本地日期格式,例如:
var date2 = new Date(utc); var localeString = date2.toLocaleString();
或只要日期
var localeDateString = date2.toLocaleDateString();
或只要时间
var localeTimeString = date2.toLocaleTimeString();
实例:
//日期加减计算 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());
测试结果:
--------------------------------------------- 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时间实际上是一串以自1970年以来的毫秒数表示的长数字。
以上就是本文的全部内容,希望对大家的学习有所帮助。