En iyi yanıtlayıcılar
String was not recognized as a valid DateTime hatası..

Soru
-
merhaba arkdaşlar
asp.ent sitemde tarih işlemeleri yapıyotum..localde sorun yoka ma hosta attığım zaman aşağıdaki hatayı veriyor..internetten birkaç kod buldum ama düzelmedi..
yardımlarınızı bekliyorum
Server Error in '/' Application.
String was not recognized as a valid DateTime.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: String was not recognized as a valid DateTime.
Source Error:Line 178: Line 179: Line 180: DateTime dt1 = DateTime.Parse(Convert.ToDateTime(DateTime.Now).ToString("dd/MM")); Line 181: DateTime dt2 = DateTime.Parse(Convert.ToDateTime(Convert.ToDateTime(title)).ToString("dd/MM")); Line 182: TimeSpan ts = dt2.Subtract(dt1);
Yanıtlar
-
public string Dönüştür(object Title) { var g = DateTime.Today.Subtract((DateTime)Title).Days; return string.Format("{0} gün geçmiş", g); }
tekrar söylüyorum framework içindeki tarih zaman class ve methodlarından hariç HİÇ BİR ŞEY kullanmayın.
Not: Yukarıdaki method da object tipli parametre var, buraya datetime geldiğinden emin olmanız gerekiyor.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Ali Rıza İnceoğlu 4 Temmuz 2013 Perşembe 08:05
Tüm Yanıtlar
-
-
Eger bugun tarihi ile title girilen tarih arasindaki farkı ariyorsaniz.
DateTime Bugun=DateTime.now;
DateTime titleTarih=Convert.toDateTime(title);
TimeSpan ts = dt2.Subtract(dt1); yazmaniz yeterli saniye ve dakika lar onemlid eğilse burda atarsınız onlari.
bide web config aktif culturunuze turkce yapın cogunlukla ondan hatalar duzeltiliyor.
-
2 tarih arasındaki farkı alıyorum..
DateTime dt1 = DateTime.Parse(Convert.ToDateTime(DateTime.Now).ToString("dd/MM/yyyy"));
DateTime dt2 = DateTime.Parse(Convert.ToDateTime(Convert.ToDateTime(title)).ToString("dd/MM/yyyy"));
title veritabanında geliyor 1924-01-27 00:00:00.000 ben de türk formatına çevirip tarih arasındaki farkı almak istiyorum
TimeSpan fark = dt1 - dt2;acemiyim ondan karışık yazdım..
-
-
-
teşekkür ederim..emeğinize sağlık hocam...sizi de çok upraştırdım ...en iyisi yazdığım fonksiyonu verim
buradan bir tarih gönderiyorum : mesela 28.06.2013 arada kaç gün var... 2 gün
28.06.1985 burada kaç gün var bunda da 2 gün..yani tarihi saf dışı bırakmak istiyorum yoks tarihi de araya katıyor uçuık bir sayı veriyor....doğum günü hesabı kısaca...aşağıda böyle bir fonksiyon kurdum ama yanlış hesapladı...düzeltebilirseniz çok sevinirim..takılıp kaldım
public static string donustur(object title)
{
DateTime Bugun = DateTime.Now;
DateTime titleTarih = Convert.ToDateTime(title);
DateTime YeniTariah;
if (Bugun.Year < titleTarih.Year)
{
YeniTariah = new DateTime(Bugun.Year, Bugun.Month, Bugun.Day);
}
else
{
YeniTariah = new DateTime(titleTarih.Year, Bugun.Month, Bugun.Day);
}
TimeSpan fark=YeniTariah-titleTarih;
int days = fark.Days;
if (days < 0)
{
return Math.Abs(days).ToString() + " Gün (-)"; // 1 gün geçmiş
}
if (titleTarih < Bugun)
{
return Math.Abs(fark.TotalDays).ToString() + " Gün";
}
switch (days)
{
case 0:
return "Bugün";
case 1:
return "Yarın";
case -1:
return "Dün (Günü Geçmiş)";
default:
return days.ToString() + " Gün kaldı";
}
return days.ToString();
} -
Makinenizde Türk, sunucunuzda Amerikan culture seçilidir. Kendi maskinenizde Regional settings den English e çekerseniz sizin makinede de hata vermeye başlar.
DateTime işlemleri kültür bağımsızdır. Tüm hesaplamalar yapıldıktan sonra çıkan sonuç istenilen kültürde gösterilir. Siz ters yaptığınız için hesap bağdattan dönmüş.
İki tarih arasındaki farkı tarih1.Subtract(tarih2) ile alın. Framework içindeki methodlar hariç hiçbirşey kullanmayın. Absolute falan almaya gerek yok yani.
Tarihleri gösterirken ToLongDateString() yada ToDateString() kullanın.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak Öneren Ali Rıza İnceoğlu 27 Haziran 2013 Perşembe 06:29
-
<system.web>
<globalization culture="tr-TR" uiCulture="tr-TR" />
</system.web>
bunu webconfig dosyasına ekledim..
fonksiyonu söylediğiniz şeyleri yapmaya çalıştım yinede düzeltemedim....
inanın 2 haftadır uğraşıyom kafam karıştı..
yukarıdaki fon ksiyonun düzelterek verebilirseniz çok makbule geçer...
hazır kodları sevmiyorum ama inanın çok uğraştım
-
public string Dönüştür(object Title) { var g = DateTime.Today.Subtract((DateTime)Title).Days; return string.Format("{0} gün geçmiş", g); }
tekrar söylüyorum framework içindeki tarih zaman class ve methodlarından hariç HİÇ BİR ŞEY kullanmayın.
Not: Yukarıdaki method da object tipli parametre var, buraya datetime geldiğinden emin olmanız gerekiyor.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Ali Rıza İnceoğlu 4 Temmuz 2013 Perşembe 08:05