我的数据库包含"From Date",形式为"2012-10-01 23:59:59.000",同时将值作为"01 Oct 2012 23:59:59:000"进行前端。那么我如何在没有"十月"格式的情况下获取日期。
我也试过这个
foreach (DataRow dr in _dt.Rows)
{
dr["FromDt"] = String.Format("{0:dd-MM-yyyy hh:mm tt zzz}", dr["FromDt"]);
dr["ToDt"] = String.Format("{0:dd-MM-yyyy}", dr["ToDt"]);
}
但不能..
我参考了所有这些被子 iin 堆栈溢出 据我所知。请用一些方式。提前致谢
我也使用了以下这些颤音-
DateTime dt = DateTime.Parse(dr["FromDt"].ToString());
dr["FromDt"] = String.Format("{0:dd-MM-yyyy hh:mm tt zzz}", dr["FromDt"]);
tl;dr 该代码适用于DateTime
或DateTimeOffset
值。但是,在这种情况下,dr["FromDt"]
中的对象类型不是 DateTime 或 DateTimeOffset 值。
"按预期工作":
string.Format("{0:yyyy-MM-dd}",DateTime.Now) // -> 2012-10-09
观察到的行为;"foo"是一个字符串,格式修饰符被忽略:
string.Format("{0:junk}","foo") // -> foo
如果该值恰好是一个字符串(希望它是在从数据库读取时意外转换的 - 显示的值看起来可疑地像someDateTime.ToString()
- 并且在数据库中并非如此),那么:
- 修复/删除转换(正确)或,
- 首先将其转换回日期时间(黑客):)
试试这个
将字段转换为日期时间dt,然后应用格式,这应该可以工作
DateTime dt = DateTime.Parse(dr["FromDt"];
String.Format("{0:dd MMM yyyy hh:mm:ss tt zzz}", dt)
如果您不想要时区,则应将其用作
String.Format("{0:dd MMM yyyy hh:mm:ss}", dt)
如果需要,您可以使用以下示例中的任何格式
// 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" UniversalSortabl
怎么样:
var dt = DateTime.ParseExact(dr["FromDt"].ToString(), "dd MMM yyyy HH:mm:ss:fff", enUS, DateTimeStyles.None);
var output = dt.ToString("dd-MM-yyyy HH:mm:ss.fff");
编辑:更改为使用ParseExact,以适应输入字符串的略微奇怪的格式。
如果您使用的是日期时间选择器,则只需进入它的属性,然后将格式属性设置为短。然后显示日期,您应该将其显示为>>
dtpFrmDate.Value.Date.ToShortDateString();
我瘦它会给你想要的结果。