Analizar horas y AM valor / PM de una cadena - C #
-
19-09-2019 - |
Pregunta
¿Cuál sería la forma más eficaz para analizar la hora y el valor de AM / PM de un formato de cadena como "21:00" en C #?
Pseudocódigo:
string input = "9:00 PM";
//use algorithm
//end result
int hour = 9;
string AMPM = "PM";
Solución
Prueba esto:
string input = "9:00 PM";
DateTime result;
if (!DateTime.TryParse(input, out result))
{
// Handle
}
int hour = result.Hour == 0 ? 12
: result.Hour <= 12 ? result.Hour
: result.Hour - 12;
string AMPM = result.Hour < 12 ? "AM" : "PM";
Otros consejos
Prueba esto:
DateTime result;
string input = "9:00 PM";
//use algorithm
if (DateTime.TryParseExact(input, "h:mm tt",
CultureInfo.CurrentCulture,
DateTimeStyles.None, out result))
{
//end result
int hour = result.Hour > 12 ? result.Hour % 12 : result.Hour;
string AMPM = result.ToString("tt");
}
string input = "9:00 PM";
DateTime dt = DateTime.Parse(input);
int hour = int.Parse(dt.ToString("hh"));
string AMPM = dt.ToString("tt");
Fecha y hora Formato personalizado Cuerdas para obtener información de un valor DateTime en todo tipo de formatos.
Uso DateTime.Parse:
string input = "9:00 PM";
DateTime parsed = DateTime.Parse(input);
int hour = int.Parse(dt.ToString("h"));
string AMPM = parsed.ToString("tt");
Editar . 12% alejados de hora desde que falla por 12 a.m.
comenzar pseudocódigo:
DateTime dt;
if (!DateTime.TryParse("9:00 AM", out dt))
{
//error
}
final pseudocódigo
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow