我正在创建一个自定义类型DateOnly
,它实际上是DateTime
,其中删除了时间部分。
我遇到了一个小问题,我希望将新类型的值格式化为日期:
Dim startDate As New DateOnly(2012, 1, 2)
Debug.WriteLine(String.Format("{0:ddd}", startDate))
此输出:02/01/2012
,我希望能够将其格式化为Mon
注意:我没有包含DateOnly
类型的任何代码(为了简单起见),但我可以根据要求添加
答案 0 :(得分:4)
我设法通过在我的自定义类型中实现IFormattable
来回答我自己的问题:
Public Overloads Function ToString(fmt As String, provider As IFormatProvider) As String Implements IFormattable.ToString
Return String.Format("{0:" + fmt + "}", _dateValue)
End Function
这似乎可以解决问题。
答案 1 :(得分:1)
适合我(C#):
DateTime date = new DateTime(2012, 1, 2);
var dateString = String.Format("{0:ddd}", date); //Mon
无论如何,下面是什么:
DateTime date = new DateTime(2012, 1, 2);
var dayName= date.DayOfWeek.ToString();
如果DateOnly
是DateTime,您可以这样做:
DateOnly.DayOfWeek.ToString();
所有文化
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)
System.DateTime.Now.DayOfWeek];
http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek.aspx
的更多信息