如何在C#中将Confluent Kafka消息时间戳转为日期时间格式并解决报错?
解决Confluent Kafka时间戳转换为DateTime的问题
问题原因:你调用
consumeResult.Message.Timestamp.ToString()后,得到的是代表Confluent.Kafka.Timestamp对象本身的字符串(而非符合日期格式的字符串),导致DateTime.ParseExact无法识别解析。正确处理方式:直接访问
Timestamp结构体的内置日期属性,无需先转字符串再解析:
public void Kafka_consumer() { // 消息获取逻辑 // 直接获取UTC时间的DateTime对象 TimeStamp_dateTime = consumeResult.Message.Timestamp.UtcDateTime; // 若需要本地时间,可改为: // TimeStamp_dateTime = consumeResult.Message.Timestamp.DateTime; // 如果需要输出指定格式的字符串,再对DateTime对象格式化 string formattedTime = TimeStamp_dateTime.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); }
- 补充说明:
Confluent.Kafka.Timestamp包含时间戳值和类型(如CreateTime、LogAppendTime),直接使用其UtcDateTime或DateTime属性是最可靠的转换方式,避免了字符串解析的格式错误。
内容的提问来源于stack exchange,提问作者Mdarende
相关产品推荐
相关产品推荐

