解析连接的日期时间值

问题描述 投票:0回答:1

所以我的程序中有这两个值:

EDate = "20240328";
ETime = "145222"

这些本质上是交易的时间戳,我需要将其转换为以下格式:

2024-03-28T19:52:22.000Z

我尝试了很多方法,这是我发现正确的唯一方法。

CultureInfo provider = CultureInfo.InvariantCulture;
DateTime dateValue;
String format = "yyyy-MM-dd\\THH:mm:ss:fff\\Z";
string EDate  = "20240328";
string ETime  = "145222";

string dtString = String.Concat(EDate, ETime);
int y = Convert.ToInt32(dtString.Substring(0,4));
int mm = Convert.ToInt32(dtString.Substring(4,2));
int dd = Convert.ToInt32(dtString.Substring(6,2));
int hh = Convert.ToInt32(dtString.Substring(8,2)) + 5; // Our servers are on Central time
int m = Convert.ToInt32(dtString.Substring(10,2));
int ss = Convert.ToInt32(dtString.Substring(12,2));

dateValue = new DateTime(y, mm, dd, hh, m, ss);
// Result: 2024-03-28T19:52:22.000Z
Console.WriteLine(dateValue.ToString(format));  

有更简单的方法吗?

c# datetime
1个回答
0
投票
// dateValue should be yyyyMMdd. timeValue should be HHmmss
string FormatTimestamp(string dateValue, string timeValue)
{
   string format = "yyyyMMddHHmmss";
   return DateTime.ParseExact(dateValue + timeValue, format, CultureInfo.InvariantCulture).ToString("yyyy-MM-dd\\THH:mm:ss:fff\\Z");
}
© www.soinside.com 2019 - 2024. All rights reserved.