C# c语言中的Google.Protobuff timestamp.proto
我已经用google.proto.Timestamp成功编译了.proto文件,并用proto生成了.cs文件。我遇到的唯一问题是c代码中的初始化 我尝试了以下方法: .proto文件 C文件 上面的编译没有错误,但给了我这个错误:对象引用未设置为对象的实例。我尝试了一些其他方法,但由于帮助较少,它无法修复错误 请帮我解决这个问题C# c语言中的Google.Protobuff timestamp.proto,c#,protocol-buffers,C#,Protocol Buffers,我已经用google.proto.Timestamp成功编译了.proto文件,并用proto生成了.cs文件。我遇到的唯一问题是c代码中的初始化 我尝试了以下方法: .proto文件 C文件 上面的编译没有错误,但给了我这个错误:对象引用未设置为对象的实例。我尝试了一些其他方法,但由于帮助较少,它无法修复错误 请帮我解决这个问题 谢谢时间戳是类,因此您必须先创建它,如下所示: test._timeStamp = new Timestamp() { Seconds = DateTime.Now.
谢谢时间戳是类,因此您必须先创建它,如下所示:
test._timeStamp = new Timestamp() { Seconds = DateTime.Now.Second }
时间戳是类,因此您必须首先像这样创建它:
test._timeStamp = new Timestamp() { Seconds = DateTime.Now.Second }
以防有人无意中发现这篇文章 下面是一个代码示例:
var unixTimeMS = DateTimeOffset
.UtcNow
.ToUnixTimeMilliseconds();
var seconds = unixTimeMS / 1000;
var nanos = (int)((unixTimeMS % 1000) * 1e6);
var lul = new ProtoModel
{
Timestamp = new Google.Protobuf.WellKnownTypes.Timestamp()
{
Seconds = seconds,
Nanos = nanos
}
};
var unixTimeMSBack = lul.Timestamp
.ToDateTimeOffset()
.ToUnixTimeMilliseconds();
以防有人无意中发现这篇文章 下面是一个代码示例:
var unixTimeMS = DateTimeOffset
.UtcNow
.ToUnixTimeMilliseconds();
var seconds = unixTimeMS / 1000;
var nanos = (int)((unixTimeMS % 1000) * 1e6);
var lul = new ProtoModel
{
Timestamp = new Google.Protobuf.WellKnownTypes.Timestamp()
{
Seconds = seconds,
Nanos = nanos
}
};
var unixTimeMSBack = lul.Timestamp
.ToDateTimeOffset()
.ToUnixTimeMilliseconds();
大多数人可能只想使用helper方法:
using Google.Protobuf.WellKnownTypes;
var timestamp = Timestamp.FromDateTime(DateTime.UtcNow)
大多数人可能只想使用helper方法:
using Google.Protobuf.WellKnownTypes;
var timestamp = Timestamp.FromDateTime(DateTime.UtcNow)
给任何人一个完整的例子。
更多信息
原型
发送请求
var request = new SendMessageRequest();
request.requestDate = DateTime.Now.ToTimestamp();
request.requestDate = DateTimeOffset.Now.ToTimestamp();
C读响应
var response = new SendMessageResponse();
DateTimeOffset dateOffset = response.responseDate.ToDateTimeOffset();
DateTime date = response.responseDate.ToDateTime();
给任何人一个完整的例子。
更多信息
原型
发送请求
var request = new SendMessageRequest();
request.requestDate = DateTime.Now.ToTimestamp();
request.requestDate = DateTimeOffset.Now.ToTimestamp();
C读响应
var response = new SendMessageResponse();
DateTimeOffset dateOffset = response.responseDate.ToDateTimeOffset();
DateTime date = response.responseDate.ToDateTime();
下面是我将现有DateTime实例转换为时间戳的尝试:
// doc.CreateOn is a DateTime
Timestamp.FromDateTime(DateTime.SpecifyKind(doc.CreatedOn, DateTimeKind.Utc));
下面是我将现有DateTime实例转换为时间戳的尝试:
// doc.CreateOn is a DateTime
Timestamp.FromDateTime(DateTime.SpecifyKind(doc.CreatedOn, DateTimeKind.Utc));