如何在 yyyyymmddhhmmsss 中获取日期时间

本文关键字:获取 取日期 时间 yyyyymmddhhmmsss | 更新日期: 2023-09-27 18:09:44

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

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))
    )
);

如何在 yyyyymmddhhmmsss 中获取日期时间

您可以使用

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

如果需要 24 小时格式,请使用大写HH代替格式字符串中的hh

请记住,第一个MM应该是大写的,因为小写mm是分钟,而大写是月份。

对于您的特定情况,您可以执行以下操作,而不是编写新方法:

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

还有一件事要补充:输出将包含 12 小时格式的小时,因为字符串中的部分是小写hh。不太确定您是否需要它,因为如果没有 AM/PM,这无法指示准确的时间。为此,使用 HH 表示小时,这将以 24 小时格式显示小时。因此,您的代码可以是:

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

这个怎么样?

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

或者,对于 24 小时格式:

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

虽然你的问题没有明确说明你在寻找什么格式,但我认为根据你的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 完成(,那么我建议您选择HH的 24 小时格式(大写(

分钟

:您的分钟是正确的,例如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)

您可以在此处阅读有关各种日期/时间格式选项的更多信息,其中有很多示例