如何在yyyymmddhhmmss中获取DateTime

时间:2013-04-18 10:24:27

标签: c# datetime-format

我已经编写了以下查询来从实体创建一个xml,我需要以yyyymmddhhmmss格式为字段SLOTTINGTIME获取.NET的日期时间,所以我想到了编写一个新方法以所需格式获取日期时间。

var slottingmessagexml = new XDocument(new XElement("Message",
    new XAttribute("ID","SLT"),
    new XElement("Record",
        new XAttribute("STORENO",slottingmessage.StoreID),
        new XAttribute("PICKLOCATION",slottingmessage.PickLocation),
        new XAttribute("TPNB",slottingmessage.ProductID),
        new XAttribute("SLOTTINGTIME",GetDateTimeInNewFormat(slottingmessage.SlottingDateTime)),
        new XAttribute("SLOTTTINGACTION",slottingmessage.SlottingAction))
    )
);

3 个答案:

答案 0 :(得分:14)

您可以使用

string strDate = DateTime.Now.ToString("yyyyMMddhhmmss");

如果需要24小时格式,则在格式字符串中使用大写HH取代hh

请记住,第一个MM 应为大写,因为小写mm为分钟,其中大写为Month。

对于您的特定情况而不是编写新方法,您可以这样做:

new XAttribute("SLOTTINGTIME",slottingmessage.SlottingDateTime.ToString("yyyyMMddhhmmss")),

要添加的另一件事:输出将包含12小时格式的小时,因为字符串中的小写hh部分。不确定您是否需要,因为没有AM / PM这不能指示准确的时间。为此目的,使用HH几小时,以24小时格式显示小时数。所以你的代码可能是:

new XAttribute("SLOTTINGTIME",slottingmessage.SlottingDateTime.ToString("yyyyMMddHHmmss")),
                                                                               //^^ for 24 hours format

答案 1 :(得分:5)

这个怎么样?

public string GetDateTimeInNewFormat(DateTime d)
{
    return d.ToString("yyyyMMddhhmmss");
}

或者,24小时格式:

public string GetDateTimeInNewFormat(DateTime d)
{
    return d.ToString("yyyyMMddHHmmss");
}

答案 2 :(得分:0)

虽然您的问题没有明确说明您要查找的格式,但我认为根据您的yyyymmddhhmmss示例格式,我们可以假设您需要[years][months][days][hours][minutes][seconds]

基于此,我们可以将每个部分分解如下:

:如果您想要全年,那么您的yyyy是正确的,并且会以2013为例。一个常见的(虽然不鼓励)替代方案可以是yy(例如13

月份:目前您mm的尝试不会返回月份。它会产生分钟。您可能需要MM(例如04)。替代方案包括MMM(例如APR)和MMMM(例如April

:您已经再次确认了这一点。例如,dd会生成18

小时:您hh的尝试将产生12小时的时间格式。如果这就是你之后的那么好。但鉴于您没有尝试包含AM / PM指示符(顺便说一下可以使用tt),我建议您选择24小时格式HH(上限) - 案例)

分钟:您的会议记录是正确的,mm会产生52

秒> :同样,ss是正确的,例如会产生33


现在我们可以将它们全部串在一起并生成以下格式,其中包括我建议的24小时时间格式。然后可以将其传递给DateTime对象ToString()函数,如下所示:

var stringDateTime = slottingmessage.SlottingDateTime.ToString("yyyyMMddHHmmss");

如果您想保持GetDateTimeInNewFormat方法的方法,那么您可以像这样实现它:

public string GetDateTimeInNewFormat(DateTime dt)
{
    return dt.ToString("yyyyMMddHHmmss");
}

此函数的调用方式与示例代码中的相同:

GetDateTimeInNewFormat(slottingmessage.SlottingDateTime)

您可以阅读有关各种date/time formatting options here的更多信息,其中有大量示例