2015-03-02 96 views
-3

我试图显示时间值,但以特殊格式显示。举例来说,如果我的变量包含7时25分零零秒,我想这样显示出来:C# - 以特定格式显示时间

07H25

我想了解自定义格式一些事情,但我没有得到有趣的东西。任何想法的方式来做到这一点?

+4

[这里](https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx)所有你需要知道'DateTime'字符串格式化。 – Franck 2015-03-02 15:43:06

+0

您想查看.ToString(格式)或string.Format()命令 – Grax 2015-03-02 15:43:54

+2

“如果我的变量包含07:25:00”,变量的类型是什么,是字符串,时间跨度还是DateTime ? – Habib 2015-03-02 15:45:06

回答

0
DateTime now = DateTime.Now; 
Console.WriteLine("Time: " + now.ToString("HH\\Hmm")); 

输出

时间:15H44

和HH表示24小时时间格式,所以你会得到07,而不是仅仅7

2

你可以使用一个格式化装置用于它。例如,尝试使用CultureInfo对象(您可以克隆当前的对象),从而允许您指定全球化配置并更改DateTimeFormat.TimeSeparator属性。对于样本:

CultureInfo currentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
currentCulture.DateTimeFormat.TimeSeparator = "H"; 

string date = DateTime.Now.ToString("hh:mm", currentCulture); 
+0

如果你看看我的例子,你不需要指定CultureInfo,但这是很好的知道。 – 2015-03-02 15:47:04

1

如果你的变量DateTime,你可以很容易地使用custom date and time format用字符串分隔符等;

date.ToString("HH'H'mm") 

如果你的变量TimeSpan,你可以很容易地使用custom date and time format用字符串分隔符等;

ts.ToString("hh'H'mm") 

如果你的变量string,您可以将其解析到TimeSpan第一然后格式化喜欢;

TimeSpan ts = TimeSpan.Parse("07:25:00", CultureInfo.InvariantCulture); 
ts.ToString("hh'H'mm") 
0

Here是所有DateTime格式字符串的参考表。

添加已经给出的其他答案,这应该会给你足够的信息去消除时间格式,并根据你的需要进行排序。