2008-12-11 15 views

Répondre

12

Tous les objets DateHeure doivent avoir une date et une heure.

Si vous voulez juste le temps, l'utilisation TimeSpan:

TimeSpan span = TimeSpan.Parse("16:20"); 

Si vous voulez un DateTime, ajouter ce temps à la valeur min:

TimeSpan span = TimeSpan.Parse("16.20"); 
DateTime dt = DateTime.MinValue.Add(span); 
// will get you 1/1/1900 4:20 PM which can be formatted with .ToString("HH:mm") for 24 hour formatting 
+0

Je vais essayer, parce que je vois que l'autre développeur qui travaille avec C++ stockait les données comme vous le spécifiez. –

+0

qui fonctionne mais qui est au format AM/PM –

+1

est possible de supprimer l'AM/PM au dernier format? et le fait 24 heures, merci d'avance –

3

DateTime.Now.ToString ("hh: mm") - Si c'est C#.

Oh. Seulement lire l'en-tête.

DateTime dt = new DateTime(2008, 12, 11, Convert.ToInt32("16"), Convert.ToInt32("32"), 0); 
+12

capitale h pour le temps de 24 heures –

+0

mais convertir la valeur en chaîne de droite? Je veux le définir comme type datetime parce que je travaille avec une classe qui contient un attribut pour cette valeur –

+0

Im obtenir la valeur d'un gridview De cette façon: string hour = ((Label) selectedRow.Cells [0] .FindControl (" lblHorario ")). Texte; –

0

Je veux aborder cette partie de votre question:

sans perdre le format

Une base de données stocke généralement toutes les valeurs datetime dans un format standard commun qui est même pas humain lisible. Si vous utilisez une colonne datetime, le format d'origine est détruit. Toutefois, lorsque vous récupérez la valeur, vous la redéfinissez dans le format de votre choix. Si vous voulez HH:mm vous pouvez l'obtenir. Que voulez-vous dire par "perdre le format"?

+0

J'ai corrigé la question de manière à ce que la partie 'sans laisser de trace' du commentaire de Joel ait moins de sens maintenant. –

1

Si vous le convertissez en un type DateTime, l'objet DateTime aura dd/mm/aa et d'autres propriétés. Selon la façon dont vous prévoyez d'utiliser l'objet, vous pouvez "récupérer" vos paramètres d'origine, en formatant la sortie de la chaîne comme ceci: DT.ToString ("HH: mm");

1

Puisque vous ne spécifiez pas quel SGBD vous utilisez, il est difficile de savoir quelle réponse vous aidera. Si vous utilisez IBM Informix Dynamic Server, vous utiliserez simplement le type de données "DATETIME HOUR TO MINUTE", qui enregistrera les valeurs dans l'horloge de 24 heures.

+0

mais du côté du code im en utilisant linqtosql, donc je dois passer toutes les données requises en tant que types de DB. –

1
DateTime.Parse("16:20") 
+0

im obtenir ceci avec votre extrait de code: 11/12/2008 04:20:00 pm. –

+0

Im Toujours obtenir FormatException non gérée par le code utilisateur, par la voie maintenant je définis DateTime des deux côtés, côté serveur et côté client, alors pourquoi les images fixes trowing cette exception? –

17

juste donner un format de date à votre dateTime .

string DateFormat = "yyyy MM d " cela vous donnera le année mois et jour. après avoir continué; string DateFormat = "yyyy MM d HH:mm:ss " ici la Capital H vous donnera le format 24 hours time format et lowerCase "h" will give you the 12 hours time ...

quand vous donnez la Dateformat comme une chaîne que vous pouvez faire ce que vous voulez avec la date et l'heure.

string DateFormat = "yyyyMMdHHmmss"; 
string date = DateTime.Now.ToStrign(DateFormat); 

OU

Console.writeline(DateTime.Now.ToStrign(DateFormat)); 

SORTIE:

20120823132544 
+2

+1 pour "HH vous donnera le format 24 heures" n'a jamais su cela, merci! –