2009-06-01 4 views
0

link text.Net: DateRange ne peut pas être convertie en type « Date

Je vais avoir le même problème. Mon format de date est MM/jj/aaaa. Comment puis-je trouver le format de la date dans mon système et le modifier avec le code.

+1

Vous devriez vraiment inclure le texte de la question sur ce site aussi bien puisque votre fil lié pourrait disparaître et que ce fil serait inutile puisque dans le futur si quelqu'un le lisait ils le feraient ne sais pas ce que vous faisaient référence à. – Kelsey

Répondre

0

Vous devez définir une culture appropriée pour un current thread. DateTime.Parse utilise les paramètres de date à partir de la culture de fil courant (BTW, I love you, Reflector!):

public static DateTime Parse(string s) 
{ 
    return DateTimeParse.Parse(s, DateTimeFormatInfo.CurrentInfo, DateTimeStyles.None); 
} 

où "DateTimeFormatInfo.CurrentInfo" est:

public static DateTimeFormatInfo CurrentInfo 
{ 
    get 
    { 
     CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 
     if (!currentCulture.m_isInherited) 
     { 
      DateTimeFormatInfo dateTimeInfo = currentCulture.dateTimeInfo; 
      if (dateTimeInfo != null) 
      { 
       return dateTimeInfo; 
      } 
     } 
     return (DateTimeFormatInfo) currentCulture.GetFormat(typeof(DateTimeFormatInfo)); 
    } 
} 

Il y a beaucoup de la façon dont à la mondialisation, il suffit d'essayer de les rechercher (example of such how-to :))

0

S'il s'agit d'un objet date, il vous suffit de le formater en utilisant la méthode ToString.

http://msdn.microsoft.com/en-us/library/system.datetime.tostring.aspx

Exemple de code:

using System; 

public class DateToStringExample 
{ 
    public static void Main() 
    { 
     DateTime dateValue = new DateTime(2008, 6, 15, 21, 15, 07); 
     // Create an array of standard format strings. 
     string[] standardFmts = {"d", "D", "f", "F", "g", "G", "m", "o", 
           "R", "s", "t", "T", "u", "U", "y"}; 
     // Output date and time using each standard format string. 
     foreach (string standardFmt in standardFmts) 
     Console.WriteLine("{0}: {1}", standardFmt, 
          dateValue.ToString(standardFmt)); 
     Console.WriteLine(); 

     // Create an array of some custom format strings. 
     string[] customFmts = {"h:mm:ss.ff t", "d MMM yyyy", "HH:mm:ss.f", 
          "dd MMM HH:mm:ss", @"\Mon\t\h\: M", "HH:mm:ss.ffffzzz" }; 
     // Output date and time using each custom format string. 
     foreach (string customFmt in customFmts) 
     Console.WriteLine("'{0}': {1}", customFmt, 
          dateValue.ToString(customFmt)); 
    } 
} 
// This example displays the following output to the console: 
//  d: 6/15/2008 
//  D: Sunday, June 15, 2008 
//  f: Sunday, June 15, 2008 9:15 PM 
//  F: Sunday, June 15, 2008 9:15:07 PM 
//  g: 6/15/2008 9:15 PM 
//  G: 6/15/2008 9:15:07 PM 
//  m: June 15 
//  o: 2008-06-15T21:15:07.0000000 
//  R: Sun, 15 Jun 2008 21:15:07 GMT 
//  s: 2008-06-15T21:15:07 
//  t: 9:15 PM 
//  T: 9:15:07 PM 
//  u: 2008-06-15 21:15:07Z 
//  U: Monday, June 16, 2008 4:15:07 AM 
//  y: June, 2008 
//  
//  'h:mm:ss.ff t': 9:15:07.00 P 
//  'd MMM yyyy': 15 Jun 2008 
//  'HH:mm:ss.f': 21:15:07.0 
//  'dd MMM HH:mm:ss': 15 Jun 21:15:07 
//  '\Mon\t\h\: M': Month: 6 
//  'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00 
0

Votre problème est que votre assignant la date dans le fichier ASPX et attendre le format à mm/jj/aaaa quand il est probablement jj/mm/yyyy donc ça explose. Déployez-vous sur un système utilisant un format de date différent? Si tel est le cas, ajoutez peut-être manuellement les plages par le code et attribuez-les en utilisant le format attendu qui attend un objet date.

Par exemple.

YourDateValidator.MaximumValue = YourMaxDateTimeObject; 
YourDateValidator.MinimumValue = YourMinDateTimeObject; 
+0

@Jack Si cette réponse ou une autre vous a aidé, vous devez définir une réponse acceptée afin que les autres personnes qui lisent cette question puissent trouver la solution qui vous a aidé. – Kelsey

Questions connexes