将格式化字符串 (dd/mm/yy) 转换为 ISO 日期时间

Convert a formmated string (dd/mm/yy) to and ISO datetime

我有一个名为 ProjectDateSignedstring 变量,其格式为 13/10/2019 23:00:00,我需要将其转换为 ISO 标准 作为关注 2019-10-13T23:00:00Z,那我该怎么做呢?我正在关注当地时间的英国时间。

DateTime ISOdatetimeCustom = i["ProjectDateSinged"]; 

ParseExactDateTime 然后格式化 ToString 回来:

string source = "13/10/2019 23:00:00";

string result = DateTime
  .ParseExact(source, "d'/'M'/'yyyy' 'H':'m':'s", CultureInfo.InvariantCulture)
  .ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'");

如果您已经有 DateTime(即如果 i["ProjectDateSinged"] returns DateTime),只需格式化它:

 string result = i["ProjectDateSinged"].ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'");

如果您不想进行 date/time 转换,您可以拆分并重新加入字符串:

var bits = i["ProjectDateSinged"].Split('/', ' ');
string newFormat = $"{bits[2]}-{bits[1]}-{bits[0]}T{bits[3]}Z";

这应该可以解决问题。

string myDate = "13/10/2019 23:00:00";

if (DateTime.TryParse(myDate, out var convertedDate))
{
     string output = convertedDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
}