将日期时间显示为 MM/dd/yyyy HH:mm 格式(使用 c# )

3

在数据库中,日期时间以MM-dd-yyyy HH:mm:ss的格式存储。
然而,我希望以“MM/dd/yyyy HH:mm”的格式显示日期时间。 我尝试使用String.Format()进行转换。

txtCampaignStartDate.Text = String.Format("{0:MM/dd/yyyy 
                           HH:mm}",appCampaignModel.CampaignStartDateTime);

这里的appCampaignModel.CampaignStartDateTime是一个DateTime对象,其值采用"MM-dd-yyyy HH:mm"格式。

我想以"MM/dd/yyyy HH:mm"格式显示它。

有人可以帮助我吗?


1
为什么不直接用“/”替换“-”呢? - Matt Busche
7
不要使用(n)varchar格式存储日期时间数据,应该使用datetime类型。 - Tim Schmelter
日期时间真的是以文本形式存储的吗?或者日期时间字段的数据类型实际上是datetime,只是你看到它像文本一样显示? - Corak
不,该字段类型仅为日期时间。我没有将其视为varchar。 - Priya
6个回答

10

在这个格式中,MM/dd/yyyy HH:mm 中的斜杠表示:“请用当前文化的实际分隔符替换我”。您必须明确使用 CultureInfo.InvariantCulture

txtCampaignStartDate.Text = appCampaignModel.CampaignStartDateTime.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);

“/”自定义格式说明符

在数据库中,时间日期以MM-dd-yyyy HH:mm:ss的格式存储。

请勿使用类似于将日期时间存储为(n)varchar的格式进行存储。请改用datetime类型。


谢谢Tim :),对我有用。是的,我只使用了datetime数据类型。 - Priya

5
txtCampaignStartDate.Text = appCampaignModel.CampaignStartDateTime
                                         .ToString().Replace("-","/");

或者
String.Format("{0:MM/dd/yyyy HH:mm}", dt);

请查看:C#中的DateTime字符串格式化

或者

String date = dt.ToString("MM/dd/yyyy HH:mm", DateTimeFormatInfo.InvariantInfo);

DateTime.ToString方法(String, IFormatProvider)

这是一个可以将日期/时间转换为其等效字符串表示形式的方法。第一个参数是格式字符串,用于指定输出字符串的格式。第二个参数是格式提供程序,它确定如何解释格式字符串。

我尝试使用 String.Format("{0:MM/dd/yyyy HH:mm:ss}", dt) 但对我没有用。 - Priya

2
为什么不能只是简单的替换?
txtCampaignStartDate.Text = BadString.Replace("-","/");

1
尝试使用添加的CultureInfo:
CultureInfo ci = new CultureInfo("en-US");
txtCampaignStartDate.Text = 
    appCampaignModel.CampaignStartDateTime.ToString("MM/dd/yyyy HH:mm", ci);

p.s. 使用的文化信息是一个例子。


1

要以指定的格式显示日期:

txtCampaignStartDate.Text = appCampaignModel.CampaignStartDateTime.ToString("g",DateTimeFormatInfo.InvariantInfo)

如果您需要更多日期时间格式,可以查看这个链接


0

既然您已经有了一个DateTime对象,只需按照您想要的方式将其转换为字符串即可:

appCampaignModel.CampaignStartDateTime.ToString("MM/dd/yyyy HH:mm");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接