我有以下代码以24小时格式返回时间。我想在12点am pm格式
public void LogProcess()
{
string Reason = null;
Console.WriteLine("Enter your name:");
string UserName = Console.ReadLine();
DateTime t = DateTime.Now;
int hr = t.Hour;
int m = t.Minute;
请你指导我。
答案 0 :(得分:3)
解决方案1 :您可以将ToString()
函数与custom date format strings
一起使用,以获取DateTime
字符串所需的部分。
1。您需要使用较小的hh
来获取12
小时格式的小时数。
2。您需要使用tt
来获取AM
或PM
字符串。
尝试
string Hours = DateTime.Now.ToString("hh");
string AMorPM = DateTime.Now.ToString("tt");
完整的时间信息:
DateTime dt = DateTime.Now;
int hours = Convert.ToInt32(dt.ToString("hh"));
int minutes = dt.Minute;
int seconds = dt.Second;
string AMorPM = dt.ToString("tt");
解决方案2:您可以使用12小时值来执行mod操作,获得12小时值。
注意:如果是0
,您需要将结果(在mod操作之后)映射到1。
int hours = (dt.Hour % 12 != 0) ? dt.Hour : 1;
string AMorPM = dt.ToString("tt");
答案 1 :(得分:2)
DateTime没有隐式格式,它只是一个DateTime
值..但字符串有。您可以使用hh
specifier和DateTime.ToString(string)
方法来获得12小时的时间表示。
var dt = DateTime.Now;
string hr = dt.ToString("hh");
string m = dt.ToString("mm");
有关更多信息,请查看;