c#--带毫秒的字符转换成时间(DateTime)格式(string毫秒转为时间类型)

我在作者原有代码 基础上加了 一种 ‘.’ 的情况,支持三种类型的字符串 转换为时间

/// <summary>
/// 带毫秒的字符转换成时间(DateTime)格式
/// 可处理格式:[2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666 或 2014-10-10 10:10:10.666]
/// </summary>
public DateTime GetDateTime(string dateTime)
{
    string[] strArr = dateTime.Split(new char[] { '-', ' ', ':', ',' ,'.'});
    DateTime dt = new DateTime(int.Parse(strArr[0]),
        int.Parse(strArr[1]),
        int.Parse(strArr[2]),
        int.Parse(strArr[3]),
        int.Parse(strArr[4]),
        int.Parse(strArr[5]),
        int.Parse(strArr[6]));
    return dt;
}

调用如下:

DateTime dateTime1 = GetDateTime("2014-11-21 15:39:53,504");
DateTime dateTime2 = GetDateTime("2014-11-21 15:39:53 504");
DateTime dateTime3 = GetDateTime("2014-11-21 15:39:53.504"); //sqlserver的datetime类型常见

————————————————

原文链接:https://blog.youkuaiyun.com/sufu1065/article/details/80116506

C#中,可以通过`DateTime.Parse`方法将时间字符串解析为`DateTime`对象,然后再将`DateTime`对象转换为Unix时间戳(即从1970年1月1日(UTC)开始计算的毫秒数)。这里需要注意的是,C#中的`DateTime`对象本身不直接存储毫秒数,而是通过`DateTime.Ticks`属性来表示自0001年1月1日午夜12点以来的100纳秒间隔数。以下是一个将时间字符串转换为毫秒的示例代码: ```csharp using System; using System.Globalization; class Program { static void Main() { string timeString = "2023-01-01 12:00:00"; // 指定的时间格式字符串 string format = "yyyy-MM-dd HH:mm:ss"; // 时间格式 // 尝试解析时间字符串 if (DateTime.TryParseExact(timeString, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dateTime)) { // 将DateTime对象转换为UTC时间 DateTime utcDateTime = dateTime.ToUniversalTime(); // 获取自Unix纪元以来的毫秒数 long unixTimestampMillis = (long)(utcDateTime - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; Console.WriteLine($"Unix时间戳(毫秒): {unixTimestampMillis}"); } else { Console.WriteLine("时间字符串格式不正确!"); } } } ``` 在这个示例中,我们首先定义了一个时间字符串和其格式,然后使用`DateTime.TryParseExact`方法尝试按照给定的格式解析这个字符串。如果解析功,我们将`DateTime`对象转换为UTC时间,然后计算它与Unix纪元(1970年1月1日)之间的差异,最后通过`TotalMilliseconds`属性获取毫秒数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值