Ответ 1
Вместо форматирования строки вручную вы должны использовать:
oos.ToString("M/d/yyyy HH:mm");
Кроме того, что вы подразумеваете под "не принимали значение"? Вы получаете исключение? Если да, то каково сообщение об ошибке?
Может быть, я вижу вещи..
При попытке превратить дату с форматом "mm/dd/yyyy hh:mm:ss PM"
в военное время следующая замена значения строки, похоже, не выполняется. Хотя я уверен, что сделал это раньше (со значениями столбцов, отличными от дат). Есть ли причина, по которой
row["adate"]
не примет значение, назначенное ему в этом случае?
DateTime oos = DateTime.Parse(row["adate"].ToString());
row["adate"] = oos.Month.ToString()
+ "/"
+ oos.Day.ToString()
+ "/"
+ oos.Year.ToString()
+ " "
+ oos.Hour.ToString()
+ ":"
+ oos.Minute.ToString();
Вместо форматирования строки вручную вы должны использовать:
oos.ToString("M/d/yyyy HH:mm");
Кроме того, что вы подразумеваете под "не принимали значение"? Вы получаете исключение? Если да, то каково сообщение об ошибке?
Рядом с первым ответом проверьте это:
http://msdn.microsoft.com/en-us/library/az4se3k1.aspx
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
Попробуйте
row["adate"].Text = oos.ToString("MM/dd/YYYY HH:mm");
Если у вас есть это время: 07:12:02 PM, и вы хотите это: 19:12:02 PM, тогда это код для вас!
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {
static string timeConversion(string s) {
DateTime dateTime = DateTime.ParseExact(s, "hh:mm:sstt",
System.Globalization.CultureInfo.InvariantCulture);
return (dateTime.ToString("HH:mm:ss"));
}
static void Main(String[] args) {
string s = Console.ReadLine();
string result = timeConversion(s);
Console.WriteLine(result);
}
}
В С# >= 6.0 вы также можете использовать интерполяцию строк, если вам нужно добавить что-то вокруг своей даты. Что-то вроде:
row["adate"] = $"S: {StartDateTime:yyyy-MM-dd HH:mm:ss}";