teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2021/03/04 12:06

投稿

退会済みユーザー
answer CHANGED
@@ -12,7 +12,7 @@
12
12
  // 結果: 14:32
13
13
  ```
14
14
 
15
- **【追記】**
15
+ **【追記】**
16
16
 
17
17
  下のコメント欄で「TimeSpan 型で間違いなければ、間違いなく期待通りに表示されるはずです。後で回答欄にどのようにするかを追記しておきます」と書いた件です。
18
18
 
@@ -89,4 +89,10 @@
89
89
 
90
90
  **結果**
91
91
 
92
- ![イメージ説明](f944a6103bfa656bbab70b1ea390c0bc.jpeg)
92
+ ![イメージ説明](f944a6103bfa656bbab70b1ea390c0bc.jpeg)
93
+
94
+ **【追記3】**
95
+
96
+ 下のコメント欄で「ソースに直接書かなくてもデザイン画面で設定できますし、その方がスペルミスも少なくなるのでお勧めです。後で画像を回答欄に貼っておきます」と書いた件です。
97
+
98
+ ![イメージ説明](7ac2c7915b02e27da4a50d65d49c0882.jpeg)

3

追記

2021/03/04 12:06

投稿

退会済みユーザー
answer CHANGED
@@ -16,9 +16,9 @@
16
16
 
17
17
  下のコメント欄で「TimeSpan 型で間違いなければ、間違いなく期待通りに表示されるはずです。後で回答欄にどのようにするかを追記しておきます」と書いた件です。
18
18
 
19
- C# の文字列と違って、DataFormatString="{0:hh\:mm}" で \ はエスケープ不要なのに注意。
19
+ C# の文字列と違って、.aspx では DataFormatString="{0:hh\:mm}" で \ はエスケープ不要なのに注意。
20
20
 
21
- .aspx.cs
21
+ **.aspx.cs**
22
22
 
23
23
  ```
24
24
  using System;
@@ -57,7 +57,7 @@
57
57
  }
58
58
  ```
59
59
 
60
- .aspx
60
+ **.aspx**
61
61
 
62
62
  ```
63
63
  <%@ Page Language="C#" AutoEventWireup="true"
@@ -87,6 +87,6 @@
87
87
  </html>
88
88
  ```
89
89
 
90
- 結果
90
+ **結果**
91
91
 
92
92
  ![イメージ説明](f944a6103bfa656bbab70b1ea390c0bc.jpeg)

2

追記

2021/03/04 11:44

投稿

退会済みユーザー
answer CHANGED
@@ -10,4 +10,83 @@
10
10
  Console.WriteLine("{0:hh\:mm}", time);
11
11
 
12
12
  // 結果: 14:32
13
- ```
13
+ ```
14
+
15
+ **【追記】**
16
+
17
+ 下のコメント欄で「TimeSpan 型で間違いなければ、間違いなく期待通りに表示されるはずです。後で回答欄にどのようにするかを追記しておきます」と書いた件です。
18
+
19
+ C# の文字列と違って、DataFormatString="{0:hh\:mm}" で \ はエスケープ不要なのに注意。
20
+
21
+ .aspx.cs
22
+
23
+ ```
24
+ using System;
25
+ using System.Data;
26
+
27
+ namespace WebApplication1
28
+ {
29
+ public partial class WebForm20 : System.Web.UI.Page
30
+ {
31
+ protected void Page_Load(object sender, EventArgs e)
32
+ {
33
+ if (!IsPostBack)
34
+ {
35
+ GridView1.DataSource = CreateDataTable();
36
+ GridView1.DataBind();
37
+ }
38
+ }
39
+
40
+ protected DataTable CreateDataTable()
41
+ {
42
+ var table = new DataTable();
43
+ table.Columns.Add(new DataColumn("id", typeof(int)));
44
+ table.Columns.Add(new DataColumn("name", typeof(string)));
45
+ table.Columns.Add(new DataColumn("time", typeof(TimeSpan)));
46
+ for (int i = 0; i < 5; i++)
47
+ {
48
+ var row = table.NewRow();
49
+ row["id"] = i;
50
+ row["name"] = "name-" + i;
51
+ row["time"] = new TimeSpan(6, 14, i, 17, 685);
52
+ table.Rows.Add(row);
53
+ }
54
+ return table;
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ .aspx
61
+
62
+ ```
63
+ <%@ Page Language="C#" AutoEventWireup="true"
64
+ CodeBehind="WebForm20.aspx.cs"
65
+ Inherits="WebApplication1.WebForm20" %>
66
+
67
+ <!DOCTYPE html>
68
+
69
+ <html xmlns="http://www.w3.org/1999/xhtml">
70
+ <head runat="server">
71
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
72
+ <title></title>
73
+ </head>
74
+ <body>
75
+ <form id="form1" runat="server">
76
+ <div>
77
+ <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
78
+ <Columns>
79
+ <asp:BoundField DataField="id" HeaderText="id" />
80
+ <asp:BoundField DataField="name" HeaderText="name" />
81
+ <asp:BoundField DataField="time" HeaderText="time" DataFormatString="{0:hh\:mm}" />
82
+ </Columns>
83
+ </asp:GridView>
84
+ </div>
85
+ </form>
86
+ </body>
87
+ </html>
88
+ ```
89
+
90
+ 結果
91
+
92
+ ![イメージ説明](f944a6103bfa656bbab70b1ea390c0bc.jpeg)

1

追記

2021/03/04 11:42

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,13 @@
1
1
  DateTime 型ではなくて TimeSpan 型で取得されているような気がします(気がするだけで確証はないです)。TimeSpan 型は DateTime 型とは書式設定が異なります。これを試してみてはいかがですか?
2
2
 
3
3
  カスタム TimeSpan 書式指定文字列
4
- [https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/custom-timespan-format-strings](https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/custom-timespan-format-strings)
4
+ [https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/custom-timespan-format-strings](https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/custom-timespan-format-strings)
5
+
6
+ **【追記】**
7
+
8
+ ```
9
+ var time = new TimeSpan(6, 14, 32, 17, 685);
10
+ Console.WriteLine("{0:hh\:mm}", time);
11
+
12
+ // 結果: 14:32
13
+ ```