在 EST 中将字符串转换为字符串(日期时间)
Convert string to string(datetime) in EST
我在 "2021 年 3 月 20 日星期一 14:04:48 +0000" 中有字符串
我想将其转换为 "2021 年 3 月 20 日 | 14:04 PM"
我想按原样转换字符串,但它在我的本地和服务器中显示不同。
如果你真的想操纵时区信息,那么使用Noda Time。
如果那是您的确切文本格式,并且日期和时间也是您想要的,您可以手动转换它:
var input = "Mon, 20 Mar 2021 14:04:48 +0000";
var dateParts = input.Split(' ');
var timeParts = dateParts[4].Split(':');
var amPm = int.Parse(timeParts[0]) < 12 ? "AM" : "PM";
var output = $"{dateParts[1]} {dateParts[2]} {dateParts[3]} | {timeParts[0]}:{timeParts[1]} {amPm}";
System.Console.WriteLine(output); // "20 Mar 2021 | 14:04 PM"
或者,如果您喜欢冒险,请使用 regular expression。
首先20 Mar 2021
是星期六,不是星期一,我们更正一下。然后你可以 ParseExact
得到 DateTime
并最终在 ToString()
:
的帮助下以所需的格式表示它
string source = "Sat, 20 Mar 2021 14:04:48 +0000";
string result = DateTime
.ParseExact(source, "ddd, dd MMM yyyy HH:mm:ss zzz", CultureInfo.InvariantCulture)
.ToUniversalTime()
.ToString("dd MMM yyyy' | 'HH:mm tt", CultureInfo.InvariantCulture);
备注:
- 看来你是想获取通用(不是本地)的时间,所以我加了
ToUniversalTime()
14:04 PM
对我来说 很奇怪 (14:04
和 02:04 PM
是更常见的格式);用 hh
代替 HH
得到 02:04 PM
我在 "2021 年 3 月 20 日星期一 14:04:48 +0000" 中有字符串 我想将其转换为 "2021 年 3 月 20 日 | 14:04 PM"
我想按原样转换字符串,但它在我的本地和服务器中显示不同。
如果你真的想操纵时区信息,那么使用Noda Time。
如果那是您的确切文本格式,并且日期和时间也是您想要的,您可以手动转换它:
var input = "Mon, 20 Mar 2021 14:04:48 +0000";
var dateParts = input.Split(' ');
var timeParts = dateParts[4].Split(':');
var amPm = int.Parse(timeParts[0]) < 12 ? "AM" : "PM";
var output = $"{dateParts[1]} {dateParts[2]} {dateParts[3]} | {timeParts[0]}:{timeParts[1]} {amPm}";
System.Console.WriteLine(output); // "20 Mar 2021 | 14:04 PM"
或者,如果您喜欢冒险,请使用 regular expression。
首先20 Mar 2021
是星期六,不是星期一,我们更正一下。然后你可以 ParseExact
得到 DateTime
并最终在 ToString()
:
string source = "Sat, 20 Mar 2021 14:04:48 +0000";
string result = DateTime
.ParseExact(source, "ddd, dd MMM yyyy HH:mm:ss zzz", CultureInfo.InvariantCulture)
.ToUniversalTime()
.ToString("dd MMM yyyy' | 'HH:mm tt", CultureInfo.InvariantCulture);
备注:
- 看来你是想获取通用(不是本地)的时间,所以我加了
ToUniversalTime()
14:04 PM
对我来说 很奇怪 (14:04
和02:04 PM
是更常见的格式);用hh
代替HH
得到02:04 PM