我已经编写了以下查询来从实体创建一个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))
)
);
答案 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的更多信息,其中有大量示例