0

私の残りのWebサービスから表示されたクライアント側で、クライアント側の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を使用できます

以下は、使用できる 1 つの形式の例です。

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 に答える