"Doğru" JSON tarih biçimi


1137

JSON tarih biçimi için çok farklı standartlar gördüm:

"\"\\/Date(1335205592410)\\/\""         .NET JavaScriptSerializer
"\"\\/Date(1335205592410-0500)\\/\""    .NET DataContractJsonSerializer
"2012-04-23T18:25:43.511Z"              JavaScript built-in JSON object
"2012-04-21T18:25:43-05:00"             ISO 8601

Hangisi doğru olanı? Yoksa en iyisi mi? Bu konuda herhangi bir standart var mı?


75
JSON'da tarih biçimi yok, yalnızca bir de / serileştiricinin tarih değerleriyle eşleşmeye karar verdiği dizeler var.

11
strings, numbers, true, false, null, objectsVearrays
Russ Cam

12
Ancak, JavaScript yerleşik JSON nesnesi ve ISO8601 , insan ve bilgisayar tarafından anlaşılacak tüm bilgileri içerir ve bilgisayar çağının başlangıcına dayanmaz (1970-1-1).
Ocak'ta poussma

Yanıtlar:


1849

JSON kendisi vermez tarihleri temsil şeklini belirtmek, ancak JavaScript yapar.

Sen gerektiğini yaydığı biçimini kullanan Datebireyin toJSONyöntemiyle:

2012-04-23T18:25:43.511Z

İşte nedeni:

  1. İnsan tarafından okunabilir ama aynı zamanda özlü

  2. Doğru sıralar

  3. Kronolojinin yeniden oluşturulmasına yardımcı olabilecek kesirli saniyeleri içerir

  4. ISO 8601'e uygundur

  5. ISO 8601, on yıldan fazla bir süredir uluslararası alanda köklü bir konuma sahiptir

  6. ISO 8601, W3C , RFC3339 ve XKCD tarafından onaylanmıştır

Bununla birlikte , şimdiye kadar yazılan her tarih kütüphanesi "1970'den beri milisaniye" anlayabilir. Kolay taşınabilirlik için ThiefMaster haklı.


32
Bu aynı zamanda ECMA'ya göre tercih edilen temsillerdir :JSON.stringify({'now': new Date()}) "{"now":"2013-10-21T13:28:06.419Z"}"
Steven

11
Listeye bir başka önemli neden daha ekleyeceğim: bu yerelden bağımsız. 02-03-2014 gibi bir tarihiniz varsa, bunun 3 Şubat mı yoksa 2 Mart mı olduğunu belirtmek için ek bilgiye ihtiyacınız olacaktır. ABD biçiminin veya başka bir biçimin kullanılmasına bağlıdır.
Juanal

107
xkcd: D @ajorquera bahsetmek ve bağlamak için upvote Genellikle bunun için momentjs kullanın. Ben de bu konuda IE ile ilgili sorunlar gördüm
fholzer

54
İkinci noktaya gelince, 10000 yılından sonra doğru sıralanmıyor. Yine de yeni bir format oluşturmak için yaklaşık 8000 yılımız var, bu yüzden muhtemelen bir sorun değil.
Erfa

7
Aslında @Erfa, -rakamlardan önce geldiğinden ASCII, 100.000 yılına kadar gayet iyi sıralanacaktır . ; P
Ben Leggiero

128

JSON tarihler hakkında hiçbir şey bilmiyor. .NET'in yaptığı, standart olmayan bir hack / eklentidir.

DateJavaScript'te bir nesneye, yani geçirilebilen bir nesneye kolayca dönüştürülebilen bir format kullanırdım new Date(...). En kolay ve muhtemelen en taşınabilir biçim 1970'den bu yana milisaniye içeren zaman damgasıdır.


3
stackoverflow.com/questions/10286385/… - Birisinin FF'nin neden böyle davrandığını bilip bilmediğine bakalım.
ThiefMaster

11
Bu rotaya giderseniz, 1970'ten önceki tarihlerle ilgilenmeniz gerekmediğinden emin olun!
Ben Dolman

8
@BenDolman'ın dediği gibi, bu "çözüm" 1 Ocak 1970 (Epoch) tarihinden önceki tarihlerle uygun bir şekilde ilgilenmiyor. Ayrıca, ilk etapta ISO8601'in var olmasının bir nedeni var. Burada Dünya'da "zaman dilimleri" diye adlandırdığımız şeyler var. Milisaniye içinde nerede? JSON tarihler için bir standarda sahip olmayabilir, ancak tarihler JSON dışında bulunur ve bunun için bir standart vardır. funroll'un cevabı doğrudur (ayrıca bkz: xkcd.com/1179 ).
JoeLinux

5
Ayrıca, 1970'den (milli) saniyelerin ilerideki tarihler için tahmin edilemeyeceğinden bahsetmek gerekir, çünkü artık saniye var . Bu yüzden eğer süreçler arası iletişim ve veri depolama için kullanmazdım. Bununla birlikte, bir programda dahili olarak kullanmak güzeldir, çünkü size bazı performans avantajları sağlayan tek bir tamsayıda saklanabilir.
Brodie Garnet

5
Unix zaman damgası her zaman UTC'dir, zaman damgasını oluşturmadan önce yerel saat diliminizden dönüştürürsünüz ve tekrar ekrandaki yerel saat dilimine geri dönersiniz, orada bir belirsizlik yoktur.
lkraider

46

Doğru biçim yoktur ; JSON şartname bunu yapmak için çok farklı yolları vardır yüzden tarihleri alışverişi için bir format belirtmez.

En iyi biçim tartışmalı olarak ISO 8601 biçiminde temsil edilen bir tarihtir ( Wikipedia'ya bakın ); iyi bilinen ve yaygın olarak kullanılan bir biçimdir ve birçok farklı dilde kullanılabilir, bu da birlikte çalışabilirlik için çok uygundur. Örneğin, oluşturulan json üzerinde kontrolünüz varsa, json biçimindeki diğer sistemlere veri sağlarsınız, tarih değişimi formatı olarak 8601'i seçerek iyi bir seçimdir.

Oluşturulan json üzerinde kontrolünüz yoksa, örneğin, birkaç farklı mevcut sistemden json tüketicisiyseniz, bunun en iyi yolu, beklenen farklı formatları işlemek için bir tarih ayrıştırma yardımcı programı işlevine sahip olmaktır.


2
@mlissner ama hangisinin en iyisi olduğu hakkında bir fikir . ISO-8601 bir standarttır, ancak JSON için standart değildir (kullanmaya meyilli olmama rağmen); örneğin, Microsoft bunu kullanmamaya karar verdi ( msdn.microsoft.com/en-us/library/… ). En iyi uygulama, ne olursa olsun bir (mantıklı) sözleşmeye bağlı kalmaktır. Cevabımda belirttiğim gibi, bunu ele almanın en iyi yolu, beklenen biçimleri işleyebilen bir tarih ayrıştırma yardımcı programı işlevi tanımlamaktır. Farklı formatlar kullanan sistemlerle entegre ederseniz, işlev her durumu ele almalıdır.
Russ Cam

1
@RussCam, ileri geri gidebiliriz, ancak birisi JSON'da tarihleri ​​kodlamanın en iyi yolunu soruyorsa, JSON'u yaparken tarihleri ​​nasıl biçimlendireceğini soruyorlar (ve cevap genellikle ISO-8601'dir). Ters soruyu cevaplıyorsunuz: zaten yapıldıktan sonra JSON tarihlerini nasıl tüketeceksiniz (tavsiyeniz sağlam olsa da).
mlissner

1
JSON şema belirtimi aslında bir şema tarafından doğrulanan tarihlerin 8601 biçiminde olması gerektiğini söyler.
gnasher729

3
@ gnasher729 bağlantınız var mı?
Russ Cam

@vallismortis - Bu, json belirtimindeki tarihlerin biçimi değil, taraflar arasında değiş tokuş edilen belirli bir json yapısı için bir şema tanımlamak için bir taslak belirtimdir. Cevabımı yorumlara dayanarak gözden geçireceğim, görünmüyor Yeterince açıkladım
Russ Cam

27

Gönderen RFC 7493 (I-JSON İleti Biçimi) :

I-JSON, kime sorduğunuza bağlı olarak Internet JSON veya Birlikte Çalışabilir JSON anlamına gelir.

Protokoller genellikle zaman damgalarını veya süreleri içerecek şekilde tasarlanmış veri öğeleri içerir. Bu tür tüm veri öğelerinin, RFC 3339'da belirtildiği gibi ISO 8601 biçiminde dize değerleri olarak , küçük harfler yerine büyük harflerin kullanıldığı, zaman diliminin varsayılan olarak eklenmeyeceği ve isteğe bağlı son saniye olarak ifade edilmesi ÖNERİLİR değerleri "00" olsa bile dahil edilmelidir. Ayrıca, zaman sürelerini içeren tüm veri öğelerinin, RFC 3339 Ek A'daki "süre" üretimine ve aynı ek kısıtlamalara uyması ÖNERİLİR.


2
Bu aynı zamanda, üretilen biçimidir Date().toISOString()ve Date().toJSON()sınırlama ile, Datebir zaman dilimi değerini izlemek, ve bu nedenle her zaman UTC (damgaları yayar etmez Z) zaman dilimine. Değer new Date("...")ve ile ayrıştırılabilir Date.parseDate.
Søren Løvborg

15

Sadece referans için bu formatın kullanıldığını gördüm:

Date.UTC(2017,2,22)

Fonksiyon tarafından desteklenen JSONP ile çalışır $.getJSON(). Bu yaklaşımı önerecek kadar ileri gideceğime emin değilim ... sadece bunu bir olasılık olarak dışarı atmak çünkü insanlar bunu böyle yapıyorlar.

FWIW: Artık bir iletişim protokolünde dönemden bu yana saniye, ne de dönemden bu yana milisaniye kullanmayın, çünkü artık saniyelerin rasgele uygulanması sayesinde bunlar tehlikeyle doludur (gönderenin ve alıcının UTC artık saniyelerini doğru bir şekilde uygulayıp uygulamadığı hakkında hiçbir fikriniz yoktur).

Bir tür evcil hayvan nefreti var, ancak birçok insan UTC'nin GMT için yeni isim olduğuna inanıyor - yanlış! Sisteminiz artık saniye uygulamıyorsa, GMT kullanıyorsunuzdur (yanlış olmasına rağmen genellikle UTC olarak adlandırılır). Artık saniyeleri tam olarak uygularsanız gerçekten UTC kullanıyorsunuz demektir. Gelecekteki artık saniye bilinemez; IERS tarafından gerektiğinde yayınlanır ve sürekli güncellemeler gerektirir. Artık saniyeler uygulamayı deneyen ancak güncel olmayan ve referans tablosu içeren (düşündüğünüzden daha yaygın) bir sistem çalıştırıyorsanız, ne GMT ne de UTC'ye sahipsiniz, UTC gibi davranan sakat bir sisteminiz var.

Bu tarih sayaçları yalnızca bozuk biçimde (y, m, d vb.) İfade edildiğinde uyumludur. Hiçbir zaman bir epoch formatında uyumlu değildirler. Bunu aklınızda bulundurun.


4
Bu biçimi kullanmam, ancak verdiğiniz bilgilerin geri kalanı çok faydalı, teşekkür ederim!
Robert Mikes

9

Şüphe duyduğunuzda, F12'ye (Firefox'ta Ctrl + K) basarak modern bir tarayıcının javascript web konsoluna gidin ve aşağıdakileri yazın:

new Date().toISOString()

Çıktı olacak:

"2019-07-04T13: 33: 03.969Z"

Ta-da !!


3

Evrensel birlikte çalışabilirlik için en iyi biçimin ISO-8601 dizesi değil, EJSON tarafından kullanılan biçim olduğuna inanıyorum:

{ "myDateField": { "$date" : <ms-since-epoch> } }

Burada açıklandığı gibi: https://docs.meteor.com/api/ejson.html

Yararları

  1. Performansı ayrıştırma: Tarihleri ​​ISO-8601 dizeleri olarak depolarsanız, belirli bir alanın altında bir tarih değeri bekliyorsanız bu harikadır, ancak bağlam olmadan değer türlerini belirlemesi gereken bir sisteminiz varsa, tarih formatı.
  2. Tarih Doğrulama Gerekmiyor: Tarihin doğrulanması ve doğrulanması konusunda endişelenmenize gerek yok. Bir dize ISO-8601 biçimiyle eşleşse bile, gerçek bir tarih olmayabilir; bu asla bir EJSON tarihiyle olamaz.
  3. Belirsiz Tür Bildirimi: Genel veri sistemleri söz konusu olduğunda, bir ISO dizesini bir durumda dize olarak saklamak istiyorsanız ve başka bir sistemde gerçek bir sistem tarihi ISO-8601 dize biçimini benimseyen genel sistemlere buna mekanik olarak izin vermez (kaçış hileleri veya benzeri korkunç çözümler olmadan).

Sonuç

Bir insanın okuyabileceği format (ISO-8601 dize) yararlı ve fazla olduğunu anlamak uygun kullanım durumları% 80'i için, ve aslında hiç kimse söylenmesi gerekir değil ISO-8601 dizeleri olarak kendi tarihlerini depolamak için bunu en ne onların uygulamaları ise anlamak ancak belirli değerleri güvence altına alan bir evrensel olarak kabul görmüş taşıma biçimi için kesin bu kadar çok doğrulama için belirsizlik ve ihtiyacı için izin nasıl tarihleri olmak?


Çağın neden yanlış saniye hesaplama gibi uyarıları olduğu için milisaniyenin neden bu cevaba bakınız: stackoverflow.com/a/42480073/190476
Sudhanshu Mishra

@SudhanshuMishra Başvurduğunuz uyarılar, çoğunlukla zaman damgası üretimi ile ilgili olan unix zaman damgalarının son derece akademik kaygıları için genel anlaşmalardır. Bu, milisaniye çözünürlükle daha az endişe duyuyor. Başka bir yorumda belirtildiği gibi, bilgisayar tarihlerinin çoğu, aksi belirtilmedikçe biçimlendirilse bile dahili olarak unix zaman damgaları olarak temsil edilir. Bununla birlikte, herhangi bir tarih + saatin milisaniye gösterilmesinde, özellikle kaputun altındaki aynı nano darbe uyarılarından kolayca etkilenebilen diğer yaklaşımlarla karşılaştırıldığında yanlış bir şey yoktur.
Ciabaros

Sadece unix zaman damgaları için "aralık dışı" tarihlerle ilgili endişeler eklemek için: bunlar, taşıma biçiminden çok daha geniş bir bağlamda ele alınacak olan sistem depolama sorunlarıdır. Örneğin, bu formatın 32 bite sığacak tam sayılarla sınırlı olması veya kesin olarak pozitif sayılar olması gerekmemektedir, ancak hiç kimse "yıl 2038 problemini" bir sistem / mimari seviyesine zaman damgaları bırakarak çözmeyecektir. ; sadece genişletilmesi gerekir (örn. 64 bit veya ötesine) ve bu önerilen taşıma biçimini etkilemez.
Ciabaros

3

JSON'un tarih formatı yoktur, kimsenin tarihleri ​​nasıl sakladığı umurumda değildir. Ancak, bu soru javascript ile etiketlendiğinden, javascript tarihlerini JSON'da nasıl saklayacağınızı bilmek istediğinizi varsayalım. JSON.stringifyYönteme yalnızca bir tarih iletebilirsiniz ve Date.prototype.toJSONvarsayılan olarak kullanılır Date.prototype.toISOString( sırayla kullanır ( Date.toJSON'da MDN ):

const json = JSON.stringify(new Date());
const parsed = JSON.parse(json); //2015-10-26T07:46:36.611Z
const date = new Date(parsed); // Back to date object

Ben de JSON dizeleri her okuduğunuzda otomatik olarak ISO dizeleri javascript tarihlerine dönüştürmek için ( JSON.parse MDN ) reviverparametresini kullanmak için yararlı buldum .JSON.parse

const isoDatePattern = new RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/);

const obj = {
 a: 'foo',
 b: new Date(1500000000000) // Fri Jul 14 2017, etc...
}
const json = JSON.stringify(obj);

// Convert back, use reviver function:
const parsed = JSON.parse(json, (key, value) => {
    if (typeof value === 'string' &&  value.match(isoDatePattern)){
        return new Date(value); // isostring, so cast to js date
    }
    return value; // leave any other value as-is
});
console.log(parsed.b); // // Fri Jul 14 2017, etc...

2

Tercih edilen yöntem 2018-04-23T18:25:43.511Z...

Aşağıdaki resim, bunun neden tercih edilen yol olduğunu göstermektedir:

JSON Tarihi

Yani tarihi bir yerli Yöntemi sahiptir gördüğümüz gibi toJSON, returnve bu biçimde kolayca dönüştürülebilir Datetekrar ...


2
Doğru! JSON Veri Değişimi Sözdizimi standardı belirtmez: ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf, ancak uygulamada, ISO 8601 uyumlu biçimler JavaScript çalışma zamanı dahil olmak üzere platformlar arasında daha arzu edilir.
Kamyar Nazeri

1

Sharepoint 2013'te, JSON'da veri almanın, tarihi yalnızca tarih biçimine dönüştürecek bir biçimi yoktur, çünkü bu tarihte ISO biçiminde olmalıdır

yourDate.substring(0,10)

Bu sizin için yararlı olabilir


0

"2014-01-01T23: 28: 56.782Z"

Tarih, UTC saatini (Z ile gösterilir) temsil eden standart ve sıralanabilir bir biçimde temsil edilir. ISO 8601, Z'yi saat dilimi farkı için + veya - değeriyle değiştirerek saat dilimlerini de destekler:

"2014-02-01T09: 28: 56,321-10: 00"

ISO 8601 spesifikasyonunda saat dilimi kodlamasının başka varyasyonları vardır, ancak –10: 00 formatı, mevcut JSON ayrıştırıcılarının desteklediği tek TZ formatıdır. Genel olarak, tarihin üretildiği saat dilimini bulmaya özel bir gereksiniminiz yoksa (yalnızca sunucu tarafı oluşturmada mümkündür) UTC tabanlı biçimi (Z) kullanmak en iyisidir.

Not: var tarih = yeni Tarih (); console.log (tarih); // Çar 01 Ocak 2014 13:28:56 GMT- 1000 (Hawaii Standart Saati)

var json = JSON.stringify(date);
console.log(json);  // "2014-01-01T23:28:56.782Z"

JavaScript bunun için standart bir biçime sahip olmamasına rağmen bunun tercih edilen yol olduğunu söylemek için

// JSON encoded date
var json = "\"2014-01-01T23:28:56.782Z\"";

var dateStr = JSON.parse(json);  
console.log(dateStr); // 2014-01-01T23:28:56.782Z

0

Kotlin kullanıyorsanız, bu sorununuzu çözecektir. (MS Json biçimi)

val dataString = "/Date(1586583441106)/"
val date = Date(Long.parseLong(dataString.substring(6, dataString.length - 2)))

-3

benim için ayrıştırma sunucusu ile çalışmak

{
    "ContractID": "203-17-DC0101-00003-10011",
    "Supplier":"Sample Co., Ltd",
    "Value":12345.80,
    "Curency":"USD",
    "StartDate": {
                "__type": "Date",
                "iso": "2017-08-22T06:11:00.000Z"
            }
}

-6

Bunun tek bir doğru cevabı var ve çoğu sistem yanlış anlıyor. Dönemden bu yana geçen milisaniye sayısı, yani 64 bit tam sayı. Saat Dilimi bir kullanıcı arayüzü sorunudur ve uygulama katmanında veya db katmanında hiç iş yoktur. Neden db bir şey ne zaman dilimi umurumda, 64 bit tamsayı olarak saklayacağını bildiğiniz zaman dönüşüm hesaplamaları yapmak.

Yabancı bitleri çıkarın ve tarihleri ​​UI'ye kadar sayılar olarak ele alın. Basit aritmetik işleçleri sorgu ve mantık yapmak için kullanabilirsiniz.



5
Şimdi 2 probleminiz var: Hangi dönemi seçmelisiniz ve hangi milisaniyeyi saymalısınız? Muhtemelen en yaygın seçenek Unix zamanıdır (1970-01-01T00: 00: 00 UTC ve SI milisaniyesi, artık saniye içinde olanlar hariç), ancak elbette gelecek zamanları tanımsız hale getirir.
aij

2
Peki mikrosaniyeleri nasıl temsil ediyorsunuz? RFC3339 herhangi bir hassasiyetle iyi çalışır, saat dilimini ayrıştıran ve size doğru zaman damgasını veren bir okuyucuya sahip olacaksınız ve ek bilgiler. Takvim uygulamaları genellikle saat dilimlerini önemser.
gnasher729

11
Bir sonraki uçuşunuzu kaçırmak istemiyorsanız, Timezone bir kullanıcı arayüzü sorunu değildir. Uçuşlar yerel saatte yayınlanır ve DST değişiklikleri için belirli kurallara uyar. Dengeyi kaybetmek, önemli iş bilgilerini kaybetmek anlamına gelir
Panagiotis Kanavos

1
Bazı diğer karşı değerler 1970'den önceki zamanları temsil etme yeteneğini (belirli bir çağ olduğunu varsayarak) ve JSON'ların insan tarafından okunabilir olma eğilimini içerir.
Timo

-8

Aşağıdaki kod benim için çalıştı. Bu kod, tarihi GG-AA-YYYY biçiminde yazdırır .

DateValue=DateValue.substring(6,8)+"-"+DateValue.substring(4,6)+"-"+DateValue.substring(0,4);

aksi takdirde şunları da kullanabilirsiniz:

DateValue=DateValue.substring(0,4)+"-"+DateValue.substring(4,6)+"-"+DateValue.substring(6,8);

-19

Bunun gerçekten kullanım durumuna bağlı olduğunu düşünüyorum. Birçok durumda, (örneğin bir dizeye tarih vermek yerine) uygun bir nesne modeli kullanmak daha yararlı olabilir:

{
"person" :
      {
 "name" : {
   "first": "Tom",
   "middle": "M",
  ...
}
 "dob" :  {
         "year": 2012,
         "month": 4,
         "day": 23,
         "hour": 18,
         "minute": 25,
         "second": 43,
         "timeZone": "America/New_York"
    }   
   }
}

Kuşkusuz bu RFC 3339'dan daha ayrıntılı ancak:

  • insan tarafından okunabilir
  • uygun bir nesne modeli uygular (JSON'un izin verdiği ölçüde OOP'ta olduğu gibi)
  • saat dilimlerini destekler (yalnızca belirtilen tarih ve saatteki UTC ofsetini değil)
  • milisaniye, nanosaniye, ... veya sadece kesirli saniye gibi daha küçük birimleri destekleyebilir
  • ayrı bir ayrıştırma adımı gerektirmez (tarih-saat dizesini ayrıştırmak için), JSON ayrıştırıcısı sizin için her şeyi yapar
  • herhangi bir tarih-zaman çerçevesi veya herhangi bir dilde uygulama ile kolay oluşturma
  • diğer takvim ölçeklerini (İbranice, Çince, İslami ...) ve dönemleri (AD, BC, ...) desteklemek için kolayca genişletilebilir
  • 10000 yıl güvenli ;-) (RFC 3339 değil)
  • tüm gün tarihlerini ve kayan süreleri destekler (Javascriptler desteklemez Date.toJSON())

Doğru sıralama (RFC 3339 için funroll tarafından belirtildiği gibi) JSON bir tarih serileştirirken gerçekten gerekli bir özellik olduğunu sanmıyorum. Ayrıca bu yalnızca aynı saat dilimi uzaklığına sahip tarih saatleri için geçerlidir.


7
Herkesin 10000 yılında json kullanacağından şüpheliyim, ya da o zamana kadar 10000 yılı hala 10000 yılı olacak. yüzyıl bileşeni. Bu yüzden insanların en azından 9900 yılına kadar RFC 3339 ile güvenle yapışabildiklerini söyleyebilirim
bir rüya anısına

8
@downvoters: Oylama neden önemlidir? eğer a post contains wrong information, is poorly researched, or fails to communicate information. Lütfen bu nedenlerden hangisinin bu cevabı reddettiğinizi açıklayın.
Marten

5
@Marten İki şey. 1. Faydalı olabileceğini anladığım halde, downvotes için asla bir açıklama yapmadınız. 2. Cevabınızı küçümsemedim, ama insanların cevabınızı beğenmediğini tahmin ediyorum çünkü bunun yanlış bir yol olduğunu düşünüyorlar. Bu soru "Yanlış bilgi" olarak nitelendirilir çünkü soru bir şey yapmanın en iyi yolunu arıyor
Kevin Wells

7
Seni küçümsemedim, ama "bir başka kötü tanımlanmış formatı icat et" in (temelde söylediğin şey) nasıl yanlış veya kötü araştırılmış olarak görülebileceğini kesinlikle anlayabiliyorum.
aij

2
@Phil, UTC gerçekten bir saat dilimi değil (yeryüzünde resmi saat dilimi olarak "UTC" kullanan bir yer yok), bir saat standardı . Ayrıca zaman dilimi ofsetleri oldukça tahmin edilemez. 2025'te "12:00 Moskova saati" nin bugün olduğu gibi hala "9:00 UTC" olup olmadığını söylemenin bir yolu yok , son 30 yılda birkaç kez değişti . Gelecekte yerel bir saati ifade etmek istiyorsanız, gerçek saat dilimlerine ihtiyacınız vardır.
Marten
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.