我将日期时间更新为数据库。现在是 2012 年 5 月 2 日。但是,当我想将该数据库中的这个值显示到文本框中时,它会显示:05/02/2012。
请帮我解决这个问题。我想在文本框中显示它的值,就像格式已更新:2010 年 5 月 2 日
提前致谢
我将日期时间更新为数据库。现在是 2012 年 5 月 2 日。但是,当我想将该数据库中的这个值显示到文本框中时,它会显示:05/02/2012。
请帮我解决这个问题。我想在文本框中显示它的值,就像格式已更新:2010 年 5 月 2 日
提前致谢
如果您将数据作为DateTime
对象,则可以使用其ToString(string)
重载格式字符串“d/M/yyyy”或此处描述的任何其他格式来格式化其输出:http: //msdn.microsoft.com/en-us /图书馆/8kb3ddd4.aspx
SELECT CAST(DATEPART(MM,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(DD,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(YYYY,GETDATE()) AS VARCHAR(4))
试试这个 :
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");
试试这个ToString("d/M/yyyy")
给出所需的格式。
如果您可以向我展示您的代码,那么我可以为您提供更多帮助。
您可以ToString("MM/dd/yyyy")
在分配值时使用。
如果您的文本框是Textbox1
并且您的日期值存储在DateTime
对象datevalue中,那么您应该这样做。
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");
当您将此数据作为日期时间类型存储到 sql server 中时,原始格式将丢失。但是,如果您想显示不带 0 的数据,那么您可以为您的文本框执行此操作。
mytextbox.Text = dt.Month.ToString().TrimStart('0') + "/" + dt.Day.ToString().TrimStart('0') + "/" + dt.Year.ToString()
在到达您的应用程序之前使用复杂的查询处理数据或预先格式化数据通常是不好的做法,因为您会失去结果的灵活性。
来自 SQL 的数据被正确格式化为通用 DateTime 标记 - 允许应用程序对其进行按摩以用于显示目的,正如@Chris-Sinclair 通过示例链接所建议的那样。
如果使用 WPF,最好的方法是允许 UI 元素按照它认为合适的方式格式化文本,这样类实例的内容保持不变。它仍然是一个 DateTime 对象,因此您可以在不丢失全部价值的情况下进行 DateTime“数学”或其他操作。
这是一个来自Elegantcode.com的示例,其中 WPF UI 元素决定了它的格式:
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy hh:mm tt}}" />
为了您的特定目的,正确的行将显示为
<TextBlock Text="{Binding Date, StringFormat={}{0:M/d/yyyy hh:mm tt}}" />
为此,最好的方法是将日期时间作为字符串保存到数据库中。然后在检索字符串后,我可以将其转换为日期时间。它将显示正确的格式。