2010-10-12 9 views
2

J'ai deux dates. Date1 et Date2Date et heure et convertir UTC

Date1 contient "10/12/2010 12:00:00 AM". Date2 contient « 10/10/2010 03:00:00 PM »

Je veux extraire uniquement la date de Date1 et extraire seulement le temps de Date2 et de les rejoindre.

Exemple "10/12/2010 03:00:00 PM".

Des idées?

Merci

Répondre

3
DateTime date3 = date1.Date + date2.TimeOfDay; 

UTC Où vient-dedans?

2

DateTime.Date vous obtiendrez la partie date et DateTime.TimeOfDay vous obtiendrez la partie du temps, donc:

DateTime date3 = date1.Date + date2.TimeOfDay; 

devrait faire ce que vous voulez.

1

Si vous allez convertir en UTC, vous voudrez probablement le faire avec les deux dates, pour les cas où la différence de fuseau horaire passe dans une autre date. Peut-être que vous n'avez pas pour des raisons qui ne sont pas claires, dans ce cas, supprimer la conversion pertinente ci-dessous:

date1.ToUniversalTime().Date + date2.ToUniversalTime().TimeOfDay 

Cela suppose aussi les dates sont tous deux connus pour être à l'heure locale. Vous pouvez ajouter une vérification de la propriété Kind:

(date1.Kind == DateTimeKind.Utc ? date1 : date1.ToUniversalTime()).Date + (date2.Kind == DateTimeKind.Utc ? date2 : date2.ToUniversalTime()).TimeOfDay