2012-06-12 3 views
2

Скажем, у меня есть следующие:взять время и добавить к дате, чтобы сделать datetime?

string fromTime = "8:00am"; 
string someDate = "06/01/2012"; 

Я хочу, чтобы в конечном итоге делает это:

DateTime dt = Convert.ToDateTime(someDate + someTime); 

В основном я хочу, чтобы взять дату и добавить время к нему с результатом для выше быть

06/01/2012 8:00am

Но хранят его в переменной даты и времени. Это возможно?

+0

Tricky часть делает его работу на различных культурах с разными настройками даты/времени , Например, «06/01/2012» означает 6 января в США, но это означает, что 1 июня в Англии. См. Проблему в вашем подходе? –

+0

Не хватать или ничего, просто любопытно, почему вы храните их в строках? –

+0

@ShadowWizard это приложение будет работать только в США. – oJM86o

ответ

6

Вы можете использовать the DateTime.TryParseExact метод, который позволяет указать формат при разборе:

class Program 
{ 
    static void Main() 
    { 
     string s = "06/01/2012 8:00am"; 
     string format = "dd/MM/yyyy h:mmtt"; 
     DateTime date; 
     if (DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) 
     { 
      Console.WriteLine(date); 
     } 
    } 
} 
+0

Не могли бы вы привести пример использования этого? – oJM86o

+0

Несомненно, см. Мое обновление. –

1

Попробуйте это:

DateTime dt = DateTime.ParseExact(someDate + " " + someTime, "MM/dd/yyyy h:mmtt", CultureInfo.InvariantCulture); 
Смежные вопросы