æéã®æ å ±ãäžèŠãªãã°ãDateOnlyæ§é äœãçšããŸããDateOnly æ§é äœ - æ¥ä»ãšæå»ã«é¢é£ããåãæ¯èŒãã - .NET | Microsoft Learn
public DateTime(
int year, // 幎
int month, // æ
int day, // æ¥
int hour, // æ
int minute, // å
int second, // ç§
int millisecond, // ããªç§
Calendar calendar, // æŠ
DateTimeKind kind // çŸå°æå»ãUTCãŸãã¯ãã以å€
)
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) - DateTime ã³ã³ã¹ãã©ã¯ã¿ãŒ (System) | Microsoft Learn
倿°ã®ãªãŒããŒããŒãããããŸãã
public DateTime (long ticks; public DateTime (long ticks DateTimeKind kind; public DateTime (int year int month int day; public DateTime (int year int month int day System.Globalization.Calendar calendar; public DateTime (int year int month int day int hour int minute int second; public DateTime (int year int month int day int hour int minute int second System.Globalization.Calendar calendar; public DateTime (int year int month int day int hour int minute int second DateTimeKind kind; public DateTime (int year int month int day int hour int minute int second int millisecond; public DateTime (int year int month int day int hour int minute int second int millisecond DateTimeKind kind; public DateTime (int year int month int day int hour int minute int second int millisecond System.Globalization.Calendar calendar; public DateTime (int year int month int day int hour int minute int second int millisecond System.Globalization.Calendar calendar DateTimeKind kind;
次ã®ããã«å©çšã§ããŸãã
new DateTime(0); // "0001/01/01 0:00:00" new DateTime(10000000); // "0001/01/01 0:00:01"
ã³ã³ã¹ãã©ã¯ã¿ä»¥å€ã«ããDateTimeãçæããéçã¡ãœããã倿°çšæãããŠããŸãã
| å | ãããã㣠| å 容 |
|---|---|---|
| DateTime | Now | ã³ã³ãã¥ãŒã¿ãŒäžã®çŸåšã®æ¥æ (çŸå°æå»)
ãã®è§£å床ã¯ã·ã¹ãã ã¿ã€ããŒã«äŸåãããããé£ç¶ããŠåŒã³åºããšåãå€ãè¿ãããšããã |
| DateTime | UtcNow | ã³ã³ãã¥ãŒã¿ãŒäžã®çŸåšã®æ¥æ (UTC) |
| DateTime | Today | ã³ã³ãã¥ãŒã¿ãŒäžã®çŸåšã®æ¥ä» (çŸå°æå»)ãæå»éšåã¯00:00:00 |
| å | ãããã㣠| å 容 |
|---|---|---|
| int | Year | 幎ã®éšå |
| int | Month | æã®éšå |
| int | Day | æ¥ã®éšå |
| DateTime | Date | æ¥ä»ã®éšå |
| int | Hour | æéã®éšå |
| int | Minute | åã®éšå |
| int | Second | ç§ã®éšå |
| int | Millisecond | ããªç§ã®éšå |
| long | Ticks | æ¥ä»ãšæå»ã衚ãã¿ã€ããŒå»ã¿ã®æé
0001/01/01 00:00:00.000ãåºæºãšãã100ããç§åäœã®çµéæéã1ç§ãããã®å€ã¯ãTimeSpan.TicksPerSecondããåŸãã new DateTime(1,1,1,0,0,0).Ticks; // 0 new DateTime(1,1,1,0,0,1).Ticks; // 10000000 ãªãWindowsãã¡ã€ã«æå»ã¯ãããšã¯ç°ãªããèµ·ç¹ã1601/01/01ãšããŠããŸãã |
| int | DayOfYear | 幎éç©ç®æ¥ |
| DayOfWeek | DayOfWeek | ææ¥ |
| TimeSpan | TimeOfDay | æå» |
| DateTimeKind | Kind | æå»ã®çš®é¡ (çŸå°æå»ãUTCããŸãã¯ãã®ã©ã¡ãã§ããªã) |
DateTime dateTime1 = new DateTime(1, 2, 3, 4, 5, 6, 7, DateTimeKind.Unspecified);
DateTime dateTime2 = new DateTime(1, 2, 3, 4, 5, 6, 7, DateTimeKind.Local);
DateTime dateTime3 = new DateTime(1, 2, 3, 4, 5, 6, 7, DateTimeKind.Utc);
dateTime1.ToString("o"); // "0001-02-03T04:05:06.0070000"
dateTime2.ToString("o"); // "0001-02-03T04:05:06.0070000+09:00"
dateTime3.ToString("o"); // "0001-02-03T04:05:06.0070000Z"
| ã¡ãœãã | æ©èœ |
|---|---|
| ToUniversalTime() | UTCã«å€æã§ãã |
| ToLocalTime() | çŸå°æå»ã«å€æã§ãã |
| ã¡ãœãã | 倿å | è§£ææ¹æ³ | è§£æã®å€±æ |
|---|---|---|---|
| Parse(String) | æ¥ä»ãšæå»ã®æåååœ¢åŒ | äžè¬çãªåœ¢åŒ | FormatExceptionãæãããã |
| TryParse(String, DateTime) | æ¥ä»ãšæå»ã®æåååœ¢åŒ | äžè¬çãªåœ¢åŒ | falseãè¿ããã |
| ParseExact(String, String, IFormatProvider) | æ¥ä»ãšæå»ã®æåååœ¢åŒ | æå®ã®åœ¢åŒ | FormatExceptionãæãããã |
| TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) | æ¥ä»ãšæå»ã®æåååœ¢åŒ | æå®ã®åœ¢åŒ | falseãè¿ããã |
| FromFileTime(Int64) | Windowsãã¡ã€ã«æå» | ã¿ã€ããŒå»ã¿ã®çŸå°æå» | |
| FromFileTimeUtc(Int64) | Windowsãã¡ã€ã«æå» | ã¿ã€ããŒå»ã¿ã®UTCæå» | |
| FromOADate(Double) | OLEãªãŒãã¡ãŒã·ã§ã³æ¥ä» | ||
| FromBinary(Int64) | 64ãããã®ãã€ããªå€ |
DateTime.FromFileTime(0); // "1601/01/01 9:00:00" DateTime.FromFileTimeUtc(0); // "1601/01/01 0:00:00"
DateTime dateTime1 = new DateTime(2001, 1, 1, 0, 0, 0, DateTimeKind.Local); long ticks = dateTime1.Ticks; // 631139040000000000 DateTime dateTime2 = new DateTime(ticks); // "2001/01/01 0:00:00" DateTime dateTime3 = new DateTime(ticks, DateTimeKind.Utc); // "2001/01/01 0:00:00"
DateTime dateTime1 = new DateTime(2001, 1, 1, 0, 0, 0, DateTimeKind.Local); long fileTime = dateTime1.ToFileTime(); // 126227484000000000 long fileTimeUtc = dateTime1.ToFileTimeUtc(); // 126227484000000000 DateTime dateTime2 = DateTime.FromFileTime(fileTime); // "2001/01/01 0:00:00" DateTime dateTime3 = DateTime.FromFileTimeUtc(fileTime); // "2000/12/31 15:00:00"
æåå圢åŒã®æ¥ä»ãããDateTimeãçæã§ããŸãã
| ã¡ãœãã | |
|---|---|
| Parse(String) | çŸåšã®ã«ã«ã㣠|
| Parse(String, IFormatProvider) | ã«ã«ãã£åºæã®æžåŒæ å ± |
| Parse(String, IFormatProvider, DateTimeStyles) | ã«ã«ãã£åºæã®æžåŒæ å ±ãšæžåŒã¹ã¿ã€ã« |
æžåŒæ å ±ãšã¹ã¿ã€ã«ãçç¥ãã圢åŒã§ã¯ãDateTimeFormatInfo.CurrentInfoãšDateTimeStyles.Noneãæå®ãããŸããParse - datetime.cs
string s = "01/02/2000 00:00";
DateTime d1 = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("ja-JP")); // 2000/01/02 0:00:00
DateTime d2 = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("en-US")); // 2000/01/02 0:00:00
DateTime d3 = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("en-GB")); // 2000/02/01 0:00:00
bool r1 = d1 == d2; // true
bool r2 = d2 == d3; // false
==æŒç®åã§ã¯çããããšãTicksã®å€ã§å€æãããKindã¯èæ ®ãããŸãããRemarks - DateTime.Equality(DateTime, DateTime) Operator (System) | Microsoft Learn
å éšçã«ã¯100ããç§ééã®ã¿ã€ããŒå»ã¿ã®å€ãæã€ãããæšæºã®æåå圢åŒã§çãããšãããªããžã§ã¯ãã®å€ãäžèŽããªãããšããããŸããDateTime å€ãšãããããã®æååè¡šçŸ - DateTime æ§é äœ (System) | MSDN
DateTime dateTime1 = new DateTime(2001, 1, 1); // {2001/01/01 0:00:00} DateTime dateTime2 = new DateTime(2001, 1, 1, 0, 0, 0, 1); // {2001/01/01 0:00:00} bool r1 = dateTime1.ToString() == dateTime2.ToString(); // true bool r2 = dateTime1 == dateTime2; // false // 1ç§æªæºãåãæšãŠãŠæ¯èŒ bool r3 = dateTime1.Ticks / TimeSpan.TicksPerSecond == dateTime2.Ticks / TimeSpan.TicksPerSecond; // true
å ç®ãæžç®ã«ã¯åçã®ã¡ãœããAdd()ãSubtract()ããããŸãã
DateTime d1 = new DateTime(2000, 1, 1); DateTime d2 = new DateTime(2000, 1, 3); DateTime a1 = d1 + new TimeSpan(1, 0, 0, 0); // 2000/01/02 0:00:00 DateTime a2 = d1.Add(new TimeSpan(1, 0, 0, 0)); // 2000/01/02 0:00:00 DateTime s1 = d1 - new TimeSpan(1, 0, 0, 0); // 1999/12/31 0:00:00 DateTime s2 = d1.Subtract(new TimeSpan(1, 0, 0, 0)); // 1999/12/31 0:00:00 TimeSpan e1 = d2 - d1; // 2.00:00:00 TimeSpan e2 = d1 - d2; // -2.00:00:00 TimeSpan e3 = d2.Subtract(d1); // 2.00:00:00
DateTime dateTime = new DateTime(1, 2, 3, 4, 5, 6, 7); dateTime.ToLongDateString(); // "0001幎2æ3æ¥" dateTime.ToShortDateString(); // "0001/02/03" dateTime.ToString(); // "0001/02/03 4:05:06" dateTime.ToString(new DateTimeFormatInfo()); // "02/03/0001 04:05:06" dateTime.ToString(CultureInfo.InvariantCulture.DateTimeFormat); // "02/03/0001 04:05:06" dateTime.ToString(new CultureInfo("en-US")); // "2/3/0001 4:05:06 AM" dateTime.ToString(CultureInfo.CreateSpecificCulture("en-GB")); // "03/02/0001 04:05:06"
DateTime dateTime = new DateTime(1, 2, 3, 4, 5, 6, 7); dateTime.ToString(); // "0001/02/03 4:05:06" dateTime.ToString("d"); // "0001/02/03" dateTime.ToString("D"); // "0001幎2æ3æ¥" dateTime.ToString("f"); // "0001幎2æ3æ¥ 4:05" dateTime.ToString("F"); // "0001幎2æ3æ¥ 4:05:06" dateTime.ToString("o"); // "0001-02-03T04:05:06.0070000" (ISO 8601æºæ ) "O"ã§ãåã dateTime.ToString("yyyy/MM/dd HH:mm:ss.FFF"); // "0001/02/03 04:05:06.007"
| ã¡ãœãã | å®è£ |
|---|---|
| ToShortDateString() | DateTimeFormat.Format(this, "d", DateTimeFormatInfo.CurrentInfo);
ToShortDateString - datetime.cs |
| ToLongDateString() | DateTimeFormat.Format(this, "D", DateTimeFormatInfo.CurrentInfo); |
| æžåŒæå®å | ||
|---|---|---|
| g ãŸã㯠gg | 幎代ãå¹Žå· | A.D. |
| y | 幎 | |
| M | æ | 1 ïœ 12 |
| MM | 01 ïœ 12 | |
| MMM | æã®çç¥å | |
| MMMM | æã®å®å šå | |
| d | æ¥ã«ã¡ | 1 ïœ 31 |
| dd | 01 ïœ 31 | |
| ddd | ææ¥ã®çç¥å | Mon |
| dddd | ææ¥ã®å®å šå | Monday |
| t | AM/PM | AãPãå |
| tt | AM/PM | AMãPMãååŸ |
| h | 12æé圢åŒã®æéâ»1 | |
| hh | ||
| H | 24æé圢åŒã®æé | |
| HH | ||
| m | å | |
| mm | ||
| s | ç§ | |
| ss | ||
| f | ç§æ°ã®å°æ°éš | |
| F | ç§æ°ã®å°æ°éš | 0ãªãã°äœã衚瀺ãããªã |
"/"ã¯ãã¡ã€ã«åã«äœ¿çšã§ããªãããã䜿çšã§ãã圢åŒã§ååŸããã«ã¯DateTime.Now.ToString("yyyyMMddHHmmssfff")ã®ããã«ã«ã¹ã¿ã æžåŒã§ååŸããããDateTime.Now.Ticks.ToString()ã®ããã«ã¿ã€ããŒå»ã¿ã®æ°ãæååã«å€æããŠçšããŸããc# - Append TimeStamp to a File Name - Stack Overflow
DateTimeOffsetã¯æ¥æãšå ±ã«UTCãšã®å·®ãä¿æããŠãããããã€ãã«äžç¹ã®æéã衚ããŸãã DateTimeOffset æ§é äœ - æ¥ä»ãšæå»ã«é¢é£ããåãæ¯èŒãã - .NET | Microsoft Learn DateTimeãšDateTimeOffsetã®éããšã¯ïŒïŒ»C#ãVBïŒ.NET TIPS - ïŒ IT å±±æ¬åº·åœŠ (2015/06/24)
public TimeSpan(
int days, // æ¥æ°
int hours, // æéæ°
int minutes, // åæ°
int seconds, // ç§æ°
int milliseconds // ããªç§æ°
)
TimeSpan(Int32, Int32, Int32, Int32, Int32) - TimeSpan ã³ã³ã¹ãã©ã¯ã¿ãŒ (System) | Microsoft Learn
倿°ã®ãªãŒããŒããŒãããããŸãã
public TimeSpan (long ticks); public TimeSpan (int hours, int minutes, int seconds); public TimeSpan (int days, int hours, int minutes, int seconds); public TimeSpan (int days, int hours, int minutes, int seconds, int milliseconds);
次ã®ããã«å©çšã§ããŸãã
new TimeSpan(100).ToString(); // "00:00:00.0000100" new TimeSpan(1, 0, 0, 0).ToString(); // "1.00:00:00"
è² æ°ã蚱容ãããŸãã
new TimeSpan(-1, 10, 0).ToString(); // "-00:50:00"
ãã©ã¡ãŒã¿ãåå¥ã«æå®ããå¿ èŠããªããªãã°ãTimeSpanãçæããéçã¡ãœããããäœæããŸãã
æå®ããå€ãTimeSpan.MinValueããTimeSpan.MaxValueã®ç¯å²ãå€ãããšãArgumentOutOfRangeExceptionãæããããŸããäžæ¹ã§ticksã§æå®ãããšãã¯åŒæ°èªäœãlongã®ç¯å²ã«åãŸãããããªãŒããŒãããŒãããšãã¯ãã®å€ã«å¯Ÿããçµæãè¿ãããŸãã
TimeSpan t1 = new TimeSpan(TimeSpan.MaxValue.Days, 0, 0, 0); // 10675199.00:00:00 TimeSpan t2 = new TimeSpan(TimeSpan.MaxValue.Days + 1, 0, 0, 0); // ArgumentOutOfRangeExceptionãæéãé·ããããããTimeSpan ããªãŒããŒãããŒããŸãããã TimeSpan t3 = new TimeSpan(TimeSpan.MaxValue.Ticks); // 10675199.02:48:05.4775807 TimeSpan t4 = new TimeSpan(TimeSpan.MaxValue.Ticks + 1L); // -10675199.02:48:05.4775808 (TimeSpanãžäžããåã«ãåŒæ°ããªãŒããŒãããŒããŠãã)
| å | ãããã㣠| å 容 | å€ |
|---|---|---|---|
| long | TicksPerSecond | ã¿ã€ããŒå»ã¿ã®æ°ã1ç§ã§è¡šã | 10000000 |
| long | TicksPerMillisecond | ã¿ã€ããŒå»ã¿ã®æ°ã1ããªç§ã§è¡šã | 10000 |
| TimeSpan | Zero | ãŒã | new TimeSpan(0L) |
| TimeSpan | MinValue | æå°å€
TimeSpan.MinValue.ToString(); // "-10675199.02:48:05.4775808" |
new TimeSpan(long.MinValue) |
| TimeSpan | MaxValue | æå€§å€
TimeSpan.MaxValue.ToString(); // "10675199.02:48:05.4775807" |
new TimeSpan(long.MaxValue) |
| å | ãããã㣠| å 容 |
|---|---|---|
| int | Days | æéééã®æ¥æ°ã®éšå |
| int | Hours | æéééã®æéã®éšå |
| int | Milliseconds | æéééã®ããªç§ã®éšå |
| int | Minutes | æéééã®åã®éšå |
| int | Seconds | æéééã®ç§ã®éšå |
| double | TotalDays | æ¥æ°ã§è¡šããæééé |
| double | TotalHours | æéæ°ã§è¡šããæééé |
| double | TotalMinutes | åæ°ã§è¡šããæééé |
| double | TotalSeconds | ç§æ°ã§è¡šããæééé |
| double | TotalMilliseconds | ããªç§æ°ã§è¡šããæééé |
| long | Ticks | ã¿ã€ããŒå»ã¿ (100ããç§éé) ã§è¡šããæééé |
ãããã®ããããã£ã¯ã次ã®ãããªèšç®å€ãè¿ããŸãã
(int)((_ticks / TicksPerHour) % 24) Hours - timespan.cs(double)_ticks * HoursPerTick TotalHours - timespan.csããããã£ã¯ãã¹ãŠèªã¿åãå°çšã®ãããæéã倿Žããå¿ èŠããããšãã«ã¯ã€ã³ã¹ã¿ã³ã¹ãäœæãçŽããŸãã
TimeSpan timeSpan = new TimeSpan(0, 0, 3600); timeSpan.Hours; // 1 timeSpan.Minutes; // 0 timeSpan.Seconds; // 0 timeSpan.TotalHours; // 1 timeSpan.TotalMinutes; // 60 timeSpan.TotalSeconds; // 3600
TimeSpan timeSpan = new TimeSpan(0, 0, 0, 100, 500); timeSpan.Minutes; // 1 timeSpan.Seconds; // 40 timeSpan.TotalMinutes; // 1.675 timeSpan.TotalSeconds; // 100.5
| ã¡ãœãã | 倿å |
|---|---|
| Parse(String) | æéééã®æåå圢åŒ
ç§åäœã§æå®ããå Žåãå°æ°éšã¯7æ¡ãŸã§ |
| FromDays(Double) | æ¥æ° |
| FromHours(Double) | æéæ°
TimeSpan.FromHours(25.5); // "1.01:30:00"
|
| FromMinutes(Double) | åæ° |
| FromSeconds(Double) | ç§æ°
TimeSpan.FromSeconds(100.5); // "00:01:40.5000000"
|
| FromMilliseconds(Double) | ããªç§æ° |
| FromTicks(Int64) | ã¿ã€ããŒå»ã¿ã®æé |
æå®ã®å€ãç¯å²å€ã ã£ããšãã¯ãã³ã³ã¹ãã©ã¯ã¿ã§ã¯ArgumentOutOfRangeExceptionã§ãããã¡ãœããã§ã¯OverflowExceptionãæããããŸãã
TimeSpan.FromDays(TimeSpan.MaxValue.TotalDays - 1.0); // ok TimeSpan.FromDays(TimeSpan.MaxValue.TotalDays); // OverflowExceptionãæéãé·ããããããTimeSpan ããªãŒããŒãããŒããŸãããã TimeSpan.FromDays(Double.PositiveInfinity); // OverflowExceptionãæéãé·ããããããTimeSpan ããªãŒããŒãããŒããŸãããã
TimeSpan timeSpan1 = new TimeSpan(0, 10, 30); // "00:10:30" TimeSpan timeSpan2 = new TimeSpan(0, 20, 30); // "00:20:30" TimeSpan timeSpan3 = timeSpan1 + timeSpan2; // "00:31:00"
äžè¬ã®æžåŒæå®åãšã¯ç°ãªããç¬èªã®æå®åãå®çŸ©ãããŠããŸãã
| æžåŒæå®å | åç§° | æŽåœ¢äŸ | |
|---|---|---|---|
| TimeSpan(1, 2, 3, 4, 5) | TimeSpan(0, 1, 2, 3) | ||
| c | åºå®ã®æžåŒæå®å | "1.02:03:04.0050000" | "01:02:03" |
| g | äžè¬ã®çãæžåŒ | "1:2:03:04.005" | "1:02:03" |
| G | äžè¬ã®é·ãæžåŒ | "1:02:03:04.0050000" | "0:01:02:03.0000000" |
TimeSpan timeSpan = new TimeSpan(1, 2, 3, 4, 5);
timeSpan.ToString("c"); // "1.02:03:04.0050000"
timeSpan.ToString("g"); // "1:2:03:04.005"
timeSpan.ToString("G"); // "1:02:03:04.0050000"
ä»»æã®æžåŒãšããã«ã¯ãäžè¡šã®æå®åãçšããŸãããããã¯Daysããããã£ã®ããã«æéééã®ç¹å®ã®éšåã衚ããã®ã§ãããTotalDaysããããã£ã®ããã«æéééå šäœãæå³ããŸããã
| æžåŒæå®å | ç¯å² | |
|---|---|---|
| d ãŸã㯠%d | æ¥æ° | 0 ïœ |
| dd ïœ dddddddd | 00 ïœ (æå®åã®æåæ°ä»¥äž) | |
| h ãŸã㯠%h | æéæ° | 0 ïœ 23 |
| hh | 00 ïœ 23 | |
| m ãŸã㯠%m | åæ° | 0 ïœ 59 |
| mm | 00 ïœ 59 | |
| s ãŸã㯠%s | ç§æ° | 0 ïœ 59 |
| ss | 00 ïœ 59 | |
| F ïœ FFFFFFF | ç§æ°ã®å°æ°éš | 0 ïœ 9999999 (0ãªãã°äœã衚瀺ãããªã)(æå®åã®æåæ°ä»¥äž) |
| f ïœ fffffff | 0000000 ïœ 9999999 (æå®åã®æåæ°ä»¥äž) |
ã«ã¹ã¿ã æžåŒæå®åãåç¬ã§äœ¿çšãããšãã¯ãæšæºæžåŒæå®åãšæ··åãããªãããã«"%"ã®ä»ãæå®åãçšããŸãã
TimeSpan.FromDays(1).ToString("%d"); // "1"
TimeSpan.FromDays(1).ToString("d"); // FormatExceptionãå
¥åæååã®åœ¢åŒãæ£ãããããŸãããã
dd ïœ ddddddddãªã©ã®æå®åã¯ããã®æåæ°ã§æå°æåæ°ãèŠå®ãã衚瀺ããæåæ°ãäžè¶³ãããšãã¯ãŒãããã£ã³ã°ãããŸãã
TimeSpan.FromDays(100).ToString("%d"); // "100"
TimeSpan.FromDays(100).ToString("dd"); // "100"
TimeSpan.FromDays(100).ToString("dddd"); // "0100"
æå®å以å€ã®æåãæžåŒæå®æååã«å«ããã«ã¯ã
ã®ããããã®å¯ŸåŠãå¿ èŠã§ãããã®ä»ã®æå - ã«ã¹ã¿ã æéééæžåŒæå®æåå | MSDN
new TimeSpan(0, 1, 2, 3, 4).ToString("hh':'mm':'ss'.'fff"); // "01:02:03.004"
new TimeSpan(0, 1, 2, 3, 4).ToString("hh\\:mm\\:ss\\.fff"); // "01:02:03.004"
new TimeSpan(0, 1, 2, 3, 4).ToString(@"hh\:mm\:ss\.fff"); // "01:02:03.004"
new TimeSpan(5, 1, 2, 3, 4).ToString(@"hh\:mm\:ss\.fff"); // "01:02:03.004"
new TimeSpan(1, 2, 3).ToString("%m' minutes'"); // "2 minutes"
new TimeSpan(1, 2, 3).ToString("%m\\ \\m\\i\\n\\u\\t\\e\\s"); // "2 minutes"
æ¥æ°ãšç§æ°ã®å°æ°éšã¯0ãªãã°çç¥ãããŸãããæéæ°ãåæ°ã¯0ã§ãçç¥ãããŸããã
new TimeSpan(1, 2, 3, 4, 5).ToString("g"); // "1:2:03:04.005"
new TimeSpan(0, 2, 3, 4, 0).ToString("g"); // "2:03:04"
new TimeSpan(0, 0, 3, 4, 0).ToString("g"); // "0:03:04"
new TimeSpan(0, 0, 0, 4, 0).ToString("g"); // "0:00:04"
ãããçç¥ããã«ã¯æ¡ä»¶åå²ããŠãé©çšããæžåŒãåãæ¿ããŸããc# - TimeSpan ToString "[d.]hh:mm" - Stack Overflow
TImeSpan.ToString()ã§ãæ°å€ã®æç¡ã倿ããªãããStringBuilderã§æååãæ§ç¯ããŠããŸããFormatStandard - timespanformat.cs
æšæºã®æžåŒæå®åãªãã°ãå€ãè² ãªãã°èªåã§è² å·ãã€ããŸãã
TimeSpan.FromSeconds(10).ToString("g"); // "00:00:10"
TimeSpan.FromSeconds(-10).ToString("g"); // "-00:00:10"
ãããã«ã¹ã¿ã æžåŒæå®åã«ã¯è² å·ã衚çŸããæå®åããªããããç¬èªã«å®è£ ããå¿ èŠããããŸãã.net - Formatting a negative TimeSpan - Stack Overflow
ã«ã¹ã¿ã TimeSpan æžåŒæå®åã«ã¯ãè² ãšæ£ã®æéééã®åºå¥ã«äœ¿çšã§ãã笊å·ãå«ãŸããŠããŸããã 笊å·ãå«ããã«ã¯ãæ¡ä»¶ããžãã¯ã䜿çšããŠæžåŒæå®æååãæ§æããå¿ èŠããããŸãã
ã«ã¹ã¿ã æéééæžåŒæå®æåå | MSDN
TimeSpan timeSpan = TimeSpan.FromSeconds(-10);
timeSpan.ToString((timeSpan < TimeSpan.Zero ? "\\-" : "") + @"hh\:mm\:ss"); // "-00:00:10"
ããã¯è£éæååãçšãããšã次ã®ããã«ãèšè¿°ã§ããŸãã
timeSpan.ToString($@"{(timeSpan < TimeSpan.Zero ? "\\-" : "")}hh\:mm\:ss"); // "-00:00:10"