none
String was not recognized as a valid DateTime hatası.. RRS feed

  • 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);

    26 Haziran 2013 Çarşamba 19:30

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
    MCC

    27 Haziran 2013 Perşembe 06:15
    Moderatör

Tüm Yanıtlar

  • Merhaba;

    Tamam da yadiğin kodun bir mantıgı  bugn tarihini alıp gün ve aya ceviriyon sonra tekrar Tarihe ceviriyon maçiniz ne acaba?

    26 Haziran 2013 Çarşamba 19:35
  • 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.

    26 Haziran 2013 Çarşamba 19:39
  • 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..

    26 Haziran 2013 Çarşamba 19:40
  • teşekkür edeirm hocam sağolun..

    ama ben

    "dd/MM" formatı  ile iki tarihi çıakrmak istiyorum....yıl olmasın... bunu yapabilirmiyim.. ilk verdiğim kod bu işe yarıyordu localde ama hostta bir işe yaramıyor..

    26 Haziran 2013 Çarşamba 19:50
  • tm güzel.Yine dedğim gibi yap ;ama devavami soyle olsun.

    DateTime YeniTariah=new DAteTime(titleTarih.Year,bugun.Month,bugun.day);//Yani yillari eşitlemiş oldun;

    Sonra TimeSpan fark=YeniTarih-tittleTarih;olur mu?

    Kolay Gelsin;

    26 Haziran 2013 Çarşamba 20:21
  • 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();


















        }

    26 Haziran 2013 Çarşamba 20:58
  • 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
    MCC

    26 Haziran 2013 Çarşamba 21:31
    Moderatör
  • <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

    27 Haziran 2013 Perşembe 05:44
  • 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
    MCC

    27 Haziran 2013 Perşembe 06:15
    Moderatör