Değeri var 38142 Python kullanarak tarih biçimine dönüştürmem gerekiyor. Eğer bu numarayı excel içinde kullanırsanız ve o zaman bir hücreyi sağ tıklayıp biçimlendirirseniz, değer 04/06/2004'e dönüştürülür ve aynı sonucu python kullanarak kullanmam gerekir. BuBelirli bir sıra numarası (Excel'den) bir tarihe dönüştürme
cevap
'u nasıl elde edebilirim? Excel'deki ofset 1900/01/01; Bir timedelta olarak gün sayısını ekleyin:
from datetime import date, timedelta
def from_excel_ordinal(ordinal, _epoch=date(1900, 1, 1)):
if ordinal > 59:
ordinal -= 1 # Excel leap year bug, 1900 is not a leap year!
return _epoch + timedelta(days=ordinal - 1) # epoch is day 1
Ben 1900/02/28 sonra herhangi bir tarih için tarafından ordinal ayarlamak zorunda; Excel, Lotus 1-2-3'ten leap year bug bir miras almıştır ve 1900'ü bir artık yıl olarak kabul eder. Yukarıdaki kod, 59
ve 60
için bunun için date(1900, 2, 28)
döndürür.
Mükemmel, Teşekkürler Çok teşekkürler @Martijn Pieters – Krish
@Krish: Hata Joel Spolsky tarafından popülerleştirildi: [İlk BillG İnceleme] (http://www.joelonsoftware.com/items/2006/06/16.html) – jfs
Çağın 31 Aralık 1899 değil olduğuna emin misin? 'datetime (1899, 12, 31) + timedelta (ordinal - (ordinal> 59)) – jfs
from datetime import datetime, timedelta
def from_excel_ordinal(ordinal, epoch=datetime(1900, 1, 1)):
# Adapted from above, thanks to @Martijn Pieters
if ordinal > 59:
ordinal -= 1 # Excel leap year bug, 1900 is not a leap year!
inDays = int(ordinal)
frac = ordinal - inDays
inSecs = int(round(frac * 86400.0))
return epoch + timedelta(days=inDays - 1, seconds=inSecs) # epoch is day 1
excelDT = 42548.75001 # Float representation of 27/06/2016 6:00:01 PM in Excel format
pyDT = from_excel_ordinal(excelDT)
yukarıdaki cevabı sadece tarih değeri için iyidir, ama burada zaman dahil ve aynı zamanda bir tarih saat değerlerini döndürmek için yukarıdaki çözüm uzanır.
- 1. Bir dize sybase'de bir tarihe dönüştürme
- 2. Belirli bir sütun numarası
- 3. SSRS Sıra Numarası
- 4. Sıra numarası ile bir coulmn ekleme
- 5. Çeyrek/yıl biçimini bir tarihe dönüştürme
- 6. Bağlantılar olduğunda bir diziye bir sıra numarası nasıl atanılır
- 7. Cirqus: "Sıra numarası 0 olan bir olay bekleniyordu." istisna
- 8. Bir gün boyunca varlık için benzersiz sıra numarası oluştur
- 9. SAS, (tekrar) sıra numarası oluşturmak, zarif bir şekilde
- 10. JQuery veri kümeleri: virgülle sıra numarası çalışmıyor
- 11. Bir sıra
- 12. maxQate jquery ui datepicker 'ı belirli bir tarihe ayarlayın
- 13. sıra bir şablon değil
- 14. Temp tabloları olmadan bir SQL sorgusunda gruplar için sıra numarası nasıl eklenir
- 15. Java'da bir tarihe gün ekleme
- 16. javascript'te bir tarihe zaman ekleme
- 17. JIRA jql sorgu durum bir tarihe
- 18. Belirli bir telefon numarası aramaları sırasında uygulamayı açın
- 19. Belirli bir tarih için hafta numarası nasıl hesaplanır?
- 20. Güncel bir tarihe bir ay eklemek için
- 21. Fotoğrafı "created_time" anahtarının gerçek bir tarihe dönüştürülmesi
- 22. PHPExcel kütüphanesi kullanılarak excelden nasıl tarih alınacağı
- 23. Alfabetik sıra numarası ile listedeki ilk öğeyi bul
- 24. Bir DataGridView satır numarası alınıyor
- 25. Bir nesne numarası döndürün
- 26. Belirli bir adımla sayısal bir sıra içeren bir vektör nasıl oluşturulur?
- 27. Bir liste elemanlarının belirli bir diziyi olup olmadığını kontrol etmek isteyen ediyorum bir Sıra
- 28. Tarihe göre bilgi ekleyin
- 29. Belirli bir günün Tarihini başka bir tarihe hesaplayın ve farklarını yazdırın?
- 30. Ruby - Belirli bir tarihe dayalı bir hash değeri nasıl hesaplanır (= anahtar)?
Bu garip bir ordinal; 04/06/2004'ün doğru olduğuna emin misin? 38142 değeri * gün * anlamına gelirse, bu, ay olarak yorumladığınız şeye göre, 1993/12/25 veya 1993/10/27 den bir sapma olur. –
[Tarihe dönüştürülecek formülü] (http://stackoverflow.com/q/19721416), 1900/01/01 tarihinden bu yana, date.fromordinal() 'in hangi günlerde geçeceğini önerir. Ama o sayı bir rakam eksik o zaman. –
Benim dosyam, ordinalini bilmediğim bir değer var mı, yoksa müvekkilimin olağan dışı olduğunu söyledi ve bana "eğer gerçek tarihi bulmak istiyorsanız, o zaman verilen değer için excel'i excel olarak biçimlendirin "@MartijnPieters – Krish