将分钟转换为两位数

时间:2015-08-14 06:41:47

标签: c# datetime

请查看以下代码:

DateTime timerTest = timerView;
txbTimer.Text = timerTest.Day + "/" + timerTest.Month + "/" + timerTest.Year + " " + timerTest.Hour + ":" +  timerTest.Minute;

我想在txbTimer中得到日期和时间。如果日期是14/8/2015 14:10

但是当时间(分钟)是01 - 09时,txbTimer将成为2015年8月14日14:1,在这种情况下,我希望预期输出像14:01而不是14:1

请帮帮我

修改

我的代码是

我认为增加小时和天数的行可能会改变,所以这里是更新的代码。

DateTime timerView = DateTime.Now;
DateTime timerTest = timerView;

if(robHour.Checked == true)
    timerTest = timerView.Add(new TimeSpan(0, 1, 0, 0));
else if(robDay.Checked == true)
    timerTest = timerView.Add(new TimeSpan(1, 0, 0, 0));

txbTimer.Text = timerTest.ToString(); //timerTest.Day + "/" + timerTest.Month + "/" + timerTest.Year + " " + timerTest.Hour + ":" + timerTest.Minute.ToString();

6 个答案:

答案 0 :(得分:5)

DateTime timerTest = timerView;
var result = timerTest.ToString("dd/M/yyyy hh:mm");
/*
dd -> two digit day
M -> one digit month
yyyy -> four digit year
hh -> two digit hour
mm -> two digit minute
*/
  :(00-23)看起来像00,01..23   hh :(上午01点到下午12点)看起来像01,02..12。

答案 1 :(得分:5)

使用此

timerTest.Minute.ToString("D2");

要获得更多格式,请按照link

进行操作

以下是MSDN提供的示例

1234.ToString("D")     -> 1234
(-1234).ToString("D6") -> -001234

答案 2 :(得分:4)

DateTime

source code返回整数。这意味着它不能有任何前导零。

您可以使用Minute property获取带有前导零的字符串表示形式,用于单位数分钟。

顺便说一下,你的方法不是获取DateTime字符串表示的好方法。将ToString()方法与/作为mm format specifier:作为DateSeparator(例如:TimeSeparator)的文化更好。< / p>

txbTimer.Text = timerTest.ToString("dd/M/yyyy HH:mm", CultureInfo.InvariantCulture);

这里有 InvariantCulture

答案 3 :(得分:2)

这将解决您面临的问题

DateTime timerView = DateTime.Now;
DateTime timerTest = timerView;

if(robHour.Checked == true)
    timerTest = timerView.Add(new TimeSpan(0, 1, 0, 0));
else if(robDay.Checked == true)
    timerTest = timerView.Add(new TimeSpan(1, 0, 0, 0));

txbTimer.Text = timerTest.Day + 
               "/" + timerTest.Month + "/" + 
               timerTest.Year + " " + timerTest.Hour + 
               ":" +  timerTest.Minute.ToString("D2");

答案 4 :(得分:1)

您可能想要使用DateTime Format strings

txbTimer.Text = timerTest.ToString("d/M/yyyy HH:mm");

工作示例here

另请查看其中一个pre-defined standard formats

答案 5 :(得分:0)

要获取DateTime的分钟部分作为00到59之间的数字,请使用“ mm”自定义格式说明符。

DateTime dateTime = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(dateTime.ToString("mm"));

// Displays "01"

文档:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#the-mm-custom-format-specifier