首先,对于提出之前被问过的问题表示道歉,但即使是示例,我也没有得到预期的结果。
我要做的就是显示当前时间,但是我注意到日期时间格式是9:5:6而不是09:05:06。我阅读了有关格式化DateTime的示例,但由于某种原因它不起作用。任何人都可以解释我出错的地方吗?
感谢您一如既往的帮助。
public MainWindow()
{
InitializeComponent();
DispatcherTimer dispatchTimer = new DispatcherTimer();
dispatchTimer.Tick += new EventHandler(dispatchTimer_Tick);
dispatchTimer.Interval = new TimeSpan(0, 0, 1);
dispatchTimer.Start();
}
private void dispatchTimer_Tick(object sender, EventArgs e)
{
var hour = DateTime.Now.Hour.ToString();
var min = DateTime.Now.Minute.ToString();
var sec = DateTime.Now.Second.ToString();
var today = hour + ":" + min + ":" + sec;
label1.Content = today;
textBlock1.Text = today;
button1.Content = today;
}
答案 0 :(得分:9)
只需使用custom format string:
var today = DateTime.Now.ToString("HH:mm:ss");
var today = DateTime.Now.ToString("T");
答案 1 :(得分:0)
string now = DateTime.Now.ToString("HH:mm:ss");
检查TimeZoneInfo课程,了解更详细的全球化。
答案 2 :(得分:0)
我认为有很多方法可以解决这个问题。
就个人而言,为了简单起见,我会这样做:
private void dispatchTimer_Tick(object sender, EventArgs e)
{
string wTime = DateTime.Now.ToString("HH:mm:ss");
// OR THIS WAY
string wTime2 = DateTime.Now.ToString("T");
label1.Content = wTime;
textBlock1.Text = wTime;
button1.Content = wTime;
}
但是如果你想出于某种原因保留你的初始逻辑,那么这也会这样做。
private void dispatchTimer_Tick(object sender, EventArgs e)
{
string hour = DateTime.Now.Hour.ToString("00");
string min = DateTime.Now.Minute.ToString("00");
string sec = DateTime.Now.Second.ToString("00");
var today = hour + ":" + min + ":" + sec;
label1.Content = today;
textBlock1.Text = today;
button1.Content = today;
}
您可能还希望查看此http://msdn.microsoft.com/en-us/library/az4se3k1.aspx