我需要在GridView中显示时间从数据库中获取数据。 我有时间格式
2012-03-07 11:51:45.000
如何以类似Gmail的方式显示日期时间?
如果是今天的日期,则应显示时间。否则日期应以此格式显示。
你能帮助我吗?
答案 0 :(得分:3)
您可以使用DateTime Formatters执行此类操作
public string ShowEmailAsGmail(DateTime dt)
{
DateTime now = DateTime.UtcNow;
if (dt.Date == now.Date)
return dt.ToString("hh:mm tt");
return dt.ToString("MMM dd");
}
您可以将此作为自定义对象的属性,例如:
public class EmailItem {
public DateTime SentDate { get; set; }
public string ShowEmailAsGmail { get {
{
DateTime now = DateTime.UtcNow;
if (this.SentDate.Date == now.Date)
return this.SentDate.ToString("HH:mm");
return this.SentDate.ToString("MMM dd");
}
}
答案 1 :(得分:2)
在后面的代码中创建一个函数,将DateTime
转换为所需的格式,然后使用TemplateField
进行渲染。
代码:
protected string GetCustomDateFormat(object dateTimeObj)
{
DateTime dateTime = (DateTime)dateTimeObj;
if (dateTime.Date == DateTime.Today)
{
return dateTime.ToString("hh:mm tt", CultureInfo.InvariantCulture);
//This Gives the Time in the Format (ex: 8:30 PM)
//return dateTime.ToShortTimeString();
// or you can specify format: dateTime.ToString("t")
}
else
{
return dateTime.ToShortDateString();
// or you can specify format: dateTime.ToString("m")
}
}
标记:
<asp:GridView ID="GridView1" runat="server" ...
<Columns>
...
<asp:TemplateField HeaderText="Header text here">
<ItemTemplate>
<%# this.GetCustomDateFormat(Eval("DateTimeFieldName")) %>
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
答案 2 :(得分:1)
DateTime time = DateTime.Now;
Console.WriteLine(time.ToString("d"));
Console.WriteLine(time.ToString("D"));
Console.WriteLine(time.ToString("f"));
Console.WriteLine(time.ToString("F"));
Console.WriteLine(time.ToString("g"));
Console.WriteLine(time.ToString("G"));
Console.WriteLine(time.ToString("m"));
Console.WriteLine(time.ToString("M"));
Console.WriteLine(time.ToString("o"));
Console.WriteLine(time.ToString("O"));
Console.WriteLine(time.ToString("s"));
Console.WriteLine(time.ToString("t"));
Console.WriteLine(time.ToString("T"));
Console.WriteLine(time.ToString("u"));
Console.WriteLine(time.ToString("U"));
Console.WriteLine(time.ToString("y"));
Console.WriteLine(time.ToString("Y"));
输出: -
d 09/10/2012
D星期一,2012年9月10日
f星期一,2012年9月10日下午12:11
F星期一,2012年9月10日下午12:12:22
g 2/10/2012 12:12 PM
G 2/10/2012 12:12:22 PM
9月10日
M 9月10日
o 2012-02-10T12:12:22.1020000-08:00
O 2012-02-10T12:12:22.1020000-08:00
s 2012-02-10T12:12:22
下午12:12
下午12:12:22
你好2012-02-10 12:12:22Z
U星期一,2012年9月10日下午8:12:22
y 2012年9月
Y 2012年9月号
答案 3 :(得分:1)
结帐
// create date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
String.Format("{0:m mm}", dt); // "5 05" minute
String.Format("{0:s ss}", dt); // "7 07" second
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes
String.Format("{0:t tt}", dt); // "P PM" A.M. or P.M.
String.Format("{0:z zz zzz}", dt); // "-6 -06 -06:00" time zone
// date separator in german culture is "." (so "/" changes to ".")
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9/3/2008 16:05:07" - english (en-US)
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2008 16:05:07" - german (de-DE)
// month/day numbers without/with leading zeroes
String.Format("{0:M/d/yyyy}", dt); // "3/9/2008"
String.Format("{0:MM/dd/yyyy}", dt); // "03/09/2008"
// day/month names
String.Format("{0:ddd, MMM d, yyyy}", dt); // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt); // "Sunday, March 9, 2008"
// two/four digit year
String.Format("{0:MM/dd/yy}", dt); // "03/09/08"
String.Format("{0:MM/dd/yyyy}", dt); // "03/09/2008"
String.Format("{0:t}", dt); // "4:05 PM" ShortTime
String.Format("{0:d}", dt); // "3/9/2008" ShortDate
String.Format("{0:T}", dt); // "4:05:07 PM" LongTime
String.Format("{0:D}", dt); // "Sunday, March 09, 2008" LongDate
String.Format("{0:f}", dt); // "Sunday, March 09, 2008 4:05 PM" LongDate+ShortTime
String.Format("{0:F}", dt); // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("{0:g}", dt); // "3/9/2008 4:05 PM" ShortDate+ShortTime
String.Format("{0:G}", dt); // "3/9/2008 4:05:07 PM" ShortDate+LongTime
String.Format("{0:m}", dt); // "March 09" MonthDay
String.Format("{0:y}", dt); // "March, 2008" YearMonth
String.Format("{0:r}", dt); // "Sun, 09 Mar 2008 16:05:07 GMT" RFC1123
String.Format("{0:s}", dt); // "2008-03-09T16:05:07" SortableDateTime
String.Format("{0:u}", dt); // "2008-03-09 16:05:07Z" UniversalSortableDateTime
答案 4 :(得分:0)
怎么样:
if(myDate.Date == DateTime.Today)
答案 5 :(得分:0)
您应该使用日期时间格式器 - 有关综合列表(包括样本),您可以参考:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx