Comment comparer un DateTime pour une chaîne de caractères
J'ai de chaîne de caractères qui contient un temps (obtenu à partir d'un DB):
string user_time = "17:10:03"; //Hours:minutes:seconds
DateTime time_now = DateTime.Now;
Comment puis-je comparer cette chaîne DateTime? Je voudrais quelque chose comme ceci:
if(time_now > user_time)
{
//Do something
}
else
{
//Do something
}
OriginalL'auteur lolalola | 2010-04-27
Vous devez vous connecter pour publier un commentaire.
DateTime à soutenir la comparaison, mais d'abord, vous devez analyser les date-time de la chaîne, DateTime.Parse() devrait suffire:
Garder à l'esprit que la comparaison des dates/heures parfois nécessite une sensibilisation de fuseaux horaires pour faire la comparaison significative.
OriginalL'auteur LBushkin
Le problème est que le type DateTime.Inclut désormais une date, "17:10:03" ne fonctionne pas. De faire comme ceci:
Faire tout en votre pouvoir pour convertir cette chaîne de type de colonne à une colonne datetime.
DateTime.Parse(string)
, la méthode suppose que le courant de la date, de sorte qu'il peut être comparé àDateTime.Now
sans aucun problème.ah, je ne savais pas que. Je me demande de le gars à côté qui maintient le code, le sait aussi.
Le gars à côté, ce ne sera probablement pas l'endroit que potentiels "gotcha" (je n'ai pas), mais si il a un oeil vif comme vous et il ne tache, il va me demander ce que la date sera fixée lors de l'analyse d'une chaîne qui n'a que le temps, et de trouver la réponse lors de la vérification de l'article MSDN pour
DateTime.Parse(string)
.OriginalL'auteur Hans Passant
Vous pouvez utiliser DateTime.Comparer() avec DateTime.Parse() pour convertir la chaîne de caractères à un objet DateTime.
DateTime
.Oui il le peut, parce que les chaînes de cours peut être analysée et ainsi transformé en
DateTime
objets. Voir, par exemple, laDateTime.TryParse
etDateTime.Parse
méthodes.ne faisait pas partie de cette réponse au départ, au moins pas au moment où j'ai posté mon commentaire.
OriginalL'auteur Shane Fulmer
DateTime.Analyser Vous permet de convertir la chaîne de caractères dans un objet DateTime que vous pouvez ensuite utiliser pour comparer.
OriginalL'auteur John Weldon
Mais vous ne devriez vraiment pas stocker un temps comme une chaîne, vous devez utiliser le natif de temps ou datetime au format de votre base de données, de cette façon, vous pouvez utiliser la valeur du temps dans vos requêtes, et les indexer correctement.
Avant que la question a été édité, il dit explicitement qu'il a été d'obtenir un formulaire de chaîne de la base de données, et que la chaîne contenue le temps qu'il voulait utiliser dans le
if
déclaration.En fait, elle le fait encore.
OriginalL'auteur Allon Guralnek
OriginalL'auteur Sukasa