0

当日期时间从我的休息网络服务显示客户端时,我遇到了困难,我的客户端 wpf 应用程序代码如下所示:

    public MainWindow()
    {
        InitializeComponent();
        string uriGroups = "http://localhost:8000/Service/Student";
        XDocument xDoc = XDocument.Load(uriGroups);

        foreach(var node in xDoc.Descendants("Student"))
        {

            GroupBox groupbox = new GroupBox();
            groupbox.Header = String.Format(node.Element("StudentID").Value);
            groupbox.Width = 100;
            groupbox.Height = 100;
            groupbox.Margin = new Thickness(2);

            TextBlock textBlock = new TextBlock();
            textBlock.Text = String.Format(node.Element("FirstName").Value + " " + (node.Element("LastName").Value));
            textBlock.TextAlignment = TextAlignment.Center;

            TextBlock textBlock1 = new TextBlock();
            textBlock1.Text = String.Format(node.Element("TimeAdded").Value);
            textBlock1.TextAlignment = TextAlignment.Center;
            textBlock1.VerticalAlignment = VerticalAlignment.Bottom;

            StackPanel stackPanel = new StackPanel();
            stackPanel.Children.Add(groupbox);

            stackPanel.Children.Add(textBlock);
            stackPanel.Children.Add(textBlock1);
            stackPanel.Margin = new Thickness(10);

            MainArea.Children.Add(stackPanel);
        }

    }

我的服务看起来像这样:

public class Student
{
    ....
            public DateTime TimeAdded;
        public string TimeAddedString
        {
            get
            {
                return this.TimeAdded.ToString("dd/MM/yyyy hh:mm:ss");
            }
        }

但是输出看起来像这样:

在此处输入图像描述

我的客户端应用程序代码有没有办法截断或重新格式化它?

4

2 回答 2

3

您可以将其转换为 DateTime 然后使用String.Format

这是您可以使用的一种格式的示例:

String.Format("{0:M/d/yyyy}", ((DateTime)node.Element("TimeAdded").Value))

您还可以使用DateTime.ToString(FORMAT)

((DateTime)node.Element("TimeAdded").Value).ToString("d");

我假设 .Value 返回一个object,但如果它返回一个 DateTime 那么你可以放弃演员表。

如果您将字符串输入客户端,则需要使用DateTime.Parse

(DateTime.Parse(node.Element("TimeAdded").Value)).ToString("d");
String.Format("{0:M/d/yyyy}", DateTime.Parse(node.Element("TimeAdded").Value))
于 2012-04-16T21:08:28.417 回答
2

您正在使用 TimeAdded...但我认为您应该使用 TimeAddedString

textBlock1.Text = String.Format(node.Element("TimeAdded").Value);

应该

textBlock1.Text = String.Format(node.Element("TimeAddedString").Value);

我相信

于 2012-04-16T21:13:09.297 回答