【发布时间】:2021-08-31 21:08:35
【问题描述】:
我想将字符串转换为日期时间或时间跨度。我的字符串像这样“7.30”,我需要在 c# 中获得两次差异。我尝试了很多方法,但问题没有解决。
【问题讨论】:
-
这能回答你的问题吗? Convert string to DateTime in c#
标签: c# string datetime converters
我想将字符串转换为日期时间或时间跨度。我的字符串像这样“7.30”,我需要在 c# 中获得两次差异。我尝试了很多方法,但问题没有解决。
【问题讨论】:
标签: c# string datetime converters
date 部分重要吗?无论如何,如果您真的只需要将其转换为时间而不关心日期部分,您可以这样做:
using System;
using System.Globalization;
public class Program
{
public static void Main()
{
string inVal = "7.30";
var x = DateTime.ParseExact(inVal, "H.mm", CultureInfo.InvariantCulture);
Console.WriteLine(x);
}
}
输出:
2021 年 6 月 16 日上午 7:30:00
此外,您应该查看 Microsoft 的自定义日期和时间格式,以确保您拥有最适合您的用例的格式: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
【讨论】:
建议使用 DateTime.TryParseExact 进行 DateTime 转换,方法是指定 DateTime 字符串模式、Culture Info 和 DateTimeStyles。
这将帮助您确定解析后的字符串是否与要转换的 DateTime 字符串模式匹配。接下来,您可以实现自定义逻辑来处理错误的转换。
根据您提供的 DateTime 字符串,我假设它是这种模式(基于 24 小时):
H.mm
解决办法如下:
using System;
using System.Globalization;
public class Program
{
public static void Main()
{
DateTime dateTime;
bool isValidDateTime = DateTime.TryParseExact("7.30", "H.mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
if (!isValidDateTime)
{
// TO-DO Handling for wrong time format
return;
}
Console.WriteLine(dateTime.ToString("hh:mm"));
}
}
【讨论】: