返回日期格式为2行

时间:2013-12-31 10:29:14

标签: c# visual-studio datetime

我有这样的日期格式:hh tt,例如:12 AM或07 PM返回,对此不熟悉。

我正试图找到一种方法,只使用日期时间格式将此结果返回到2行。 我尝试了类似hh \n tthh <br/ tt的内容。 \ n返回n(但在当天的数字和时间之间跳过一行。) <br/>打破整个函数并抛出异常。 如果你有另一个创意解决方案,它也会很好。 我不想要.subString (0,2) + <br/> + substring(3,5)或熟悉的解决方案。 非常感谢

结果应该是:

12
pm

这是我的完整代码:

SingleDayStat.mDisplayDate = String.Format((DateTimeUtils.DateTimeToFormat(DateUtil.HourReset(temp_datetime, TimeOffset), LibraryUtils.GetStatisticsGraphsDateFormatForDay()).ToLowerInvariant()), "<br/>");


public static string DateTimeToFormat(DateTime Date, string Format)
    {
        return Date.ToString(Format);
    }
 public static string GetStatisticsGraphsDateFormatForDay()
    {
        string format = string.Empty;
        format = ConfigurationManager.AppSettings["StatisticsGraphsDateFormatForDay"];
        return format;
    }
<add key="StatisticsGraphsDateFormatForDay" value="hh{0}tt"/>

HourReset方法仅将小时数舍入到最接近的圆形小时

3 个答案:

答案 0 :(得分:1)

var now = DateTime.Now;
string formatted = now.ToString(string.Format("hh{0}tt",Environment.NewLine));

答案 1 :(得分:1)

这可以帮到你:

static void Main(string[] args)
{
    Console.WriteLine(FormatTime(DateTime.Now, false));
    Console.WriteLine(FormatTime(DateTime.Now, true ));
    Console.WriteLine(FormatTime(DateTime.Now, "'"  ));
    Console.WriteLine(FormatTime(DateTime.Now, "<hr />"));
}

static string FormatTime(DateTime date, bool isHtml)
{
    return FormatTime(date, isHtml ? "<br />" : Environment.NewLine);
}

static string FormatTime(DateTime date, string separator)
{
    return date.ToString(String.Format("hh'{0}'tt",
              separator.Replace("'", "\\'")), new CultureInfo("EN-US"));
}

输出:

08
AM
08<br />AM
08<hr />AM
08'AM

此方法是对Sriram答案的改进,因为正确地转义了字符串分隔符。这样您就可以使用<hr />分隔符,它将按预期显示,而不是12<12r />AM

答案 2 :(得分:0)

ASPX

<div ID="ltlTime" runat="server"></div>

背后的代码

DateTime curDate  = DateTime.Now;
string formatted = curDate.ToString("hh tt").Replace(" ","<BR>"); // to render in html
ltlTime.InnerHtml = formatted