将字符串“7.30”转换为时间格式 hh:mm

Posted

技术标签:

【中文标题】将字符串“7.30”转换为时间格式 hh:mm【英文标题】:Converting string "7.30" to time format hh:mm 【发布时间】:2021-08-31 21:08:35 【问题描述】:

我想将字符串转换为日期时间或时间跨度。我的字符串像这样“7.30”,我需要在 c# 中获得两次差异。我尝试了很多方法,但问题没有解决。

【问题讨论】:

这能回答你的问题吗? Convert string to DateTime in c# 【参考方案1】:

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

【讨论】:

【参考方案2】:

建议使用 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"));
    

【讨论】:

以上是关于将字符串“7.30”转换为时间格式 hh:mm的主要内容,如果未能解决你的问题,请参考以下文章

如何将日期和时间转换为时间戳

如何将日期时间转换为时间

js中怎么将yyyy-MM-dd hh:mm:ss格式的转换为date类型

QProgressBar 文本格式为时间

将音频输入转换为时间并使用 c# 显示它

JavaScript 秒到时间字符串,格式为 hh:mm:ss