adb shell date 返回多种格式的值时如何使用 ParseExact 格式

发布于 2025-01-21 01:12:00 字数 372 浏览 0 评论 0原文

adb shell date 返回了字符串:Wed May 18 19:18:08 IST 2022

我可以使用解析此字符串

DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM dd HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);

但是当 adb shell date 返回字符串时:Thu May 5 19:18:01 IST 2022 年(五月后两个空格)

则上述 parseExact 不起作用。

如何使用多种格式解析两个日期?

adb shell date returned the string : Wed May 18 19:18:08 IST 2022

I am able to parse this string using

DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM dd HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);

But when adb shell date returned the string : Thu May 5 19:18:01 IST 2022 (two spaces after May)

then above parseExact is not working.

How to use multiple formats to parse the two dates?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不交电费瞎发啥光 2025-01-28 01:12:00

您可以做这样的事情,在其中您可以用一个空间替换双重空间。通常,您希望在大多数情况下会看到0而不是空间,但是嘿。

var deviceCurrentDateTime = "Thu May  5 19:18:01 IST 2022";
deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);

请注意,我还用“ DDD MMM d hh:mm:ss'ist'yyyy”

编辑:

示例在工作

static void Main(string[] args)
{
    var deviceCurrentDateTime = "Thu May  5 19:18:01 IST 2022";
    deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
    DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);
    Console.WriteLine(currentdateTime.ToString());
}

印刷品:05/05/2022 19:18:01

static void Main(string[] args)
{
    var deviceCurrentDateTime = "Wed May 18 19:18:01 IST 2022";
    deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
    DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);
    Console.WriteLine(currentdateTime.ToString());
}

prints prints Prints :18/05/2022 19:18:01

You can do something like this where you replace your double space with a single space. Usually you'd expect to see a 0 rather than a space in most cases, but hey ho.

var deviceCurrentDateTime = "Thu May  5 19:18:01 IST 2022";
deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);

Note I've also replaced your format string with "ddd MMM d HH:mm:ss 'IST' yyyy"

EDIT:

Example where it's working

static void Main(string[] args)
{
    var deviceCurrentDateTime = "Thu May  5 19:18:01 IST 2022";
    deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
    DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);
    Console.WriteLine(currentdateTime.ToString());
}

Prints: 05/05/2022 19:18:01

static void Main(string[] args)
{
    var deviceCurrentDateTime = "Wed May 18 19:18:01 IST 2022";
    deviceCurrentDateTime = deviceCurrentDateTime.Replace("  ", " ");
    DateTime currentdateTime = DateTime.ParseExact(deviceCurrentDateTime, "ddd MMM d HH:mm:ss 'IST' yyyy", CultureInfo.InvariantCulture);
    Console.WriteLine(currentdateTime.ToString());
}

Prints: 18/05/2022 19:18:01

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文