C# 获得正确的时间

C# 获得正确的时间,c#,wpf,C#,Wpf,我正在获取当前时间,并试图将其拆分为两个独立的变量。 我希望时间是12小时而不是24小时 当我这样做时,第一个和第二个变量是相同的。我怎样才能解决这个问题 int hour = DateTime.Now.Hour % 12; if (hour == 0) hour = 12; 那么 这里的时间是下午6点,所以FirstDigitHour和secondDigitHour都=6 第一个数字应该等于0检查第一个数字是否有第二个数字。。。如果DateTime.Now.Hour>10。那你就有了。这难道

我正在获取当前时间,并试图将其拆分为两个独立的变量。 我希望时间是12小时而不是24小时

当我这样做时,第一个和第二个变量是相同的。我怎样才能解决这个问题

int hour = DateTime.Now.Hour % 12;
if (hour == 0) hour = 12;
那么

这里的时间是下午6点,所以FirstDigitHour和secondDigitHour都=6


第一个数字应该等于0

检查第一个数字是否有第二个数字。。。如果DateTime.Now.Hour>10。那你就有了。

这难道不能更好地满足你的需要吗

var x=DateTime.Now.ToString(“hh”)

它以12小时格式返回带有小时的字符串(例如“01”或“02”…“11”“12”)

然后你可以像这样得到第一和第二个数字

int firstDigit=Convert.ToInt32(x[0].ToString())

int secondDigit=Convert.ToInt32(x[1].ToString())


对我来说似乎很好

        int hr = 18; // 6pm
        int hour = hr % 12;
        if (hour == 0)
            hour = 12;
        int fd = hour/10;
        int ld = hour%10;
在这种情况下,我有
fd=0
ld=6


请参阅。

如果您试图设置显示时间的格式,我建议您使用正确的格式字符串:

DateTime.Now.ToString("hh tt")
这是2位12小时格式(hh)和AM/PM(tt)的时间

请参阅文档:

我不明白这个问题。。。我在这里试过,第一个数字小时是0,第二个数字小时是6,输入小时是6。这不是你想要的吗?
DateTime.Now.ToString("hh tt")