Protobuf C# 消息到 JAVA 的翻译 [英] Protobuf C# Message Translation to JAVA
本文介绍了Protobuf C# 消息到 JAVA 的翻译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将使用 C# 生成的消息转换为 JAVA.作为第一步,我生成了 proto 文件,这就是我得到的
I am trying to translate a message generated using C# to JAVA. As a first step, i generated proto file and this is what i got
package Om.Business.Scanner;
message ScannerActivityDetail {
optional string ActivityId = 1;
optional string ContextId = 2;
optional int32 ActivityStart = 3;
optional bcl.DateTime ActivityEnd = 4;
}
我如何解释 java 世界中的 bcl.DateTime?
How do i interpret bcl.DateTime in java world?
我正在使用 protobuf-net 并尝试反序列化由 C# 应用程序生成的消息.
I am using protobuf-net and trying to de-serialize message generated by C# app.
预先感谢您的帮助.
推荐答案
看bcl.proto
,应该很简单.以显而易见的方式创建一个Map
,然后:
public static Date toDate(bcl.DateTime proto) {
TimeUnit unit = SCALE_TO_UNIT_MAP.get(proto.getScale());
if (unit == null) {
throw new IllegalArgumentException("Invalid scale: " + proto.getScale());
}
long millis = unit.toMillis(proto.getValue());
return new Date(millis);
}
您可以使用 Joda Time 的 DateTime
类型完全相同方式,因为它也有一个接受 long
的构造函数.(您可能需要考虑指定哪个时区...)
You could use Joda Time's DateTime
type in exactly the same way, as it has a constructor accepting a long
too. (You might want to think about which time zone to specify though...)
这篇关于Protobuf C# 消息到 JAVA 的翻译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文