当且仅当时间部分 = 00:00:00 时,如何抑制显示 .NET DateTime 的时间部分?
在 ASP.NET 页面中,我有这样的内容:
<asp:Label ID="MyDateTimeLabel" runat="server"
Text='<%# Eval("MyDateTime") %>' />
我希望将其格式化为
... Eval("MyDateTime", "{0:d}") ... // Display only the date
当且仅当 MyDateTime 的时间部分为 00:00:00 时。否则就像这样:
... Eval("MyDateTime", "{0:g}") ... // Display date and time in hh:mm format
这可能吗?我该怎么做?
感谢您提前的提示!
In an ASP.NET page I have this:
<asp:Label ID="MyDateTimeLabel" runat="server"
Text='<%# Eval("MyDateTime") %>' />
I'd like to have it formatted like
... Eval("MyDateTime", "{0:d}") ... // Display only the date
if and only if the time part of MyDateTime is 00:00:00. Otherwise like this:
... Eval("MyDateTime", "{0:g}") ... // Display date and time in hh:mm format
Is this possible and how can I do that?
Thank you for hints in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我会将其放入我的代码隐藏中:
并将 .aspx 更改为这样调用:
如果您在多个地方执行此操作,请考虑编写
DateTime
的扩展方法 并将此逻辑放在那里(可能带有附加参数来提供不同的格式等)。I'd put this in my code-behind:
And change the .aspx to call that:
If you do this in multiple places, consider writing an extension method for
DateTime
and put this logic there (perhaps with additional parameters to supply different formats, etc.).您没有提及您使用哪种.net 语言。使用 VB.NET,您可以使用以下内联表达式:
我没有使用 C# 进行测试,但我猜用三元
?:
运算符替换If(...)
在访问TimeOfDay
之前将Eval
的结果转换为DateTime
应该可以解决问题。You did not mention which .net language you use. With VB.NET, you can use the following inline expression:
I did not test with C#, but I guess replacing
If(...)
with the ternary?:
operator and casting the result ofEval
to aDateTime
before accessingTimeOfDay
should do the trick.没有测试,但在我的脑海中:
标记中:
在代码隐藏的
didn't test, but off the top of my head:
in markup
in code-behind:
您可以在 aspx 文件中替换以下代码,或者创建一个方法并调用该方法以返回值。
You can substitute the following code in the aspx file or create a method and call the method to return the value.
仅显示日期部分
和仅显示时间部分
To show only date part
and to show only time part
我不确定您是否正在寻找这个,但我觉得值得尝试。
希望它有效。
I am not sure if you are looking for this, but I feel it's worth trying.
Hope it works.