需要时间在上午而不是24小时格式

时间:2014-04-25 12:24:53

标签: c#

我有以下代码以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;

请你指导我。

2 个答案:

答案 0 :(得分:3)

解决方案1 ​​:您可以将ToString()函数与custom date format strings一起使用,以获取DateTime字符串所需的部分。

1。您需要使用较小的hh来获取12小时格式的小时数。 2。您需要使用tt来获取AMPM字符串。

尝试

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 specifierDateTime.ToString(string)方法来获得12小时的时间表示。

var dt = DateTime.Now;
string hr = dt.ToString("hh");
string m =  dt.ToString("mm");

有关更多信息,请查看;