创建具有特定日期格式的 Datetime 对象

Create Datetime object with specific date format

如何创建具有特定日期格式的 DateTime 实例?

我想要 DateTime 的日期格式如下:"yyyy-MM-dd".

是否有可能获得像

这样的实例
var myDate = DateTime.Now.ToDateFormat("yyyy-MM-dd");

我必须有 DateTime 对象而不是 string

试试这个:

 string fromFormat = "dd/MM/yyyy HH:mm:ss";
  string toFormat = "yyyy-MM-dd HH:mm:ss";
  string mydate = DateTime.Now.ToString();
  DateTime newDate = DateTime.ParseExact(mydate, fromFormat, null);    
  String dat = newDate.ToString(toFormat);

我还不能评论,所以我必须这样做。 将 DateTime 视为具有属性 "Month"、"Day" 和 "Week" 的对象。在您打印之前,没有日期格式。 javascript 和 C# 日期格式(and/or 模型绑定)之间是否存在问题?

不太确定问题是什么。我认为斯蒂芬提供了答案。 DateTime 没有格式。但如果不是,那么我猜它是以下之一:

1) 如何将字符串解析为日期时间?

// s is string containing date
DateTime s2d=DateTime.ParseExact(s, "yyyy-MM-dd", CultureInfo.InvariantCulture); 

2) 如何获取只有日期的组件,带时间 00:00:00.00000

DateTime dateOnly=myDate.Date;
DateTime dateOnlyNow=DateTime.Today; // For today's date.

DateTime是一个class来存储日期和时间信息,它可以用很多方式表示为string(使用.ToString(format)来指定需要的格式);如果你想改变它的默认字符串表示(即默认格式,为了不把ToString(format)放在你的代码中的任何地方):

  CultureInfo culture = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name, true);

  culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
  culture.DateTimeFormat.LongTimePattern = "HH:mm:ss";

  Thread.CurrentThread.CurrentCulture = culture;

  ...

  // 2016-05-25 14:26:46 
  // since "yyyy-MM-dd" + "HH:mm:ss" is a default format now
  Console.Write(DateTime.Now);

所以只要 DateTime 应该表示为 string(通常是 input/output 操作),格式将是 "yyyy-MM-dd HH:mm:ss"

DateTime 对象可以用不同的方式创建,例如:

    DateTime myDate0 = DateTime.Now;
    DateTime myDate1 = new DateTime(2016, 5, 25);
    DateTime myDate2 = new DateTime(2016, 5, 25, 16, 45, 59, 985);
    DateTime myDate3 = DateTime.ParseExact("2016-05-25", "yyyy-MM-dd", CultureInfo.InvariantCulture);

日期信息是可变的,可以通过不同的方式更改,例如:

    myDate0 = myDate0.Subtract(new TimeSpan(12, 0, 0));

    myDate1 = myDate1.AddYears(15);

    myDate2 = myDate2.Add(new TimeSpan(31, 7, 45, 59));

    myDate3 = myDate3.AddDays(31);
    myDate3 = myDate3.AddHours(7);

DateTime 对象可以用不同的方式表示为字符串,正如 Dmitry Bychenko 和 Beldi Anouar 在这里所写的,例如:

    string string0 = myDate0.ToString("yyyy-MM-dd");
     string string1 =  myDate1.ToShortDateString();