Convertire il tempo in militare

Forse sto vedendo le cose ..

Nel tentativo di trasformare una data con un formato di "mm/dd/yyyy hh:mm:ss PM" in tempo militare, la seguente sostituzione di un valore di riga non sembra prendere. Anche se sono sicuro di averlo fatto prima (con valori di colonna diversi dalle date). C’è qualche ragione per cui la row["adate"] non accetta un valore assegnato ad esso in questo caso?

 DateTime oos = DateTime.Parse(row["adate"].ToString()); row["adate"] = oos.Month.ToString() + "/" + oos.Day.ToString() + "/" + oos.Year.ToString() + " " + oos.Hour.ToString() + ":" + oos.Minute.ToString(); 

Invece di formattare manualmente la stringa, dovresti usare:

 oos.ToString("M/d/yyyy HH:mm"); 

Inoltre, cosa intendi con “non accetterebbe un valore”? Stai ricevendo un’eccezione? In tal caso, qual è il messaggio di errore?

Provare

 row["adate"].Text = oos.ToString("MM/dd/YYYY HH:mm"); 

Se hai questa volta: 07:12:02 PM e vuoi questo: 19:12:02 PM, allora questo è il codice per te!

 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); } } 

In C #> = 6.0 è ansible utilizzare anche l’interpolazione delle stringhe se è necessario aggiungere qualcosa attorno alla data. Qualcosa di simile a:

 row["adate"] = $"S: {StartDateTime:yyyy-MM-dd HH:mm:ss}";