Comment convertir le format HH:MM:SS chaîne de type datetime?
je vais avoir une entrée de chaîne de format HH:MM:SS pour l'exemple 15:43:13,
maintenant, je veux le convertir en datetime mais gardez juste à l'heure/heure sans la date, etc
est-il possible?
par exemple
string userInput = 15:43:13;
DateTime userInputTime = Convert.ToDateTime(userInput);
me donnera la date complète, y compris l'année, etc,
est-il possible de le convertir à la juste HH:MM:SS, sans triming/sous-chaîne?
grâce
Qui a appelé à un
Vous ne pouvez pas. Un
Append .TimeOfDay
TimeSpan
.Vous ne pouvez pas. Un
DateTime
nécessite un composant de date qui vous n'avez pas fourni. Si vous voulez représenter une longueur de temps, utiliser TimeSpan
.Append .TimeOfDay
OriginalL'auteur Dan272 | 2013-05-13
Vous devez vous connecter pour publier un commentaire.
Comme d'autres l'ont dit, c'est une
TimeSpan
.Vous pouvez obtenir un datetime en faisant cela,
TimeSpan.Parse(userInput, CultureInfo.InvariantCulture)
si la culture locale pourrait être "étrange" (par exemple attendre"15.43.13"
).Si la culture locale est "étrange", les chances sont que l'utilisateur entre dans le format requis. Mais ton exemple fonctionne très bien pour le stockage et la récupération du temps à partir d'une autre source (comme un DB)
OriginalL'auteur jgauffin
Pour juste un laps de temps, vous pouvez utiliser:
Mais vous devriez vous demander pourquoi vous voulez faire cela comme il y a quelques assez importante de pièges. Par exemple, 2:33 AM voulez-vous, quand c'est dimanche, 3 novembre 2013, et à l'heure d'été se termine? Il y en a deux.
OriginalL'auteur Andrew Coonce
Si vous n'avez pas besoin de données supplémentaires (l'année, etc.) utilisation
TimeSpan
Vous pouvez convertir de la saisie de l'utilisateur pour un Temps à l'aide de
Timespan.Parse
par exemple:
TimeSpan ts = TimeSpan.Parse("6:12"); //06:12:00
Lire la suite ici:
http://msdn.microsoft.com/en-us/library/se73z7b9.aspx
OriginalL'auteur m4ttsson