我想翻译使用C#JAVA产生的消息。 作为第一步,我生成原型文件,这是我得到了什么
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?
我使用protobuf网,并试图反序列化的C#应用程序生成的消息。
在此先感谢您的帮助。
看着bcl.proto
,它应该是相当简单的。 创建Map<DateTime.TimeSpanScale, TimeUnit>
在明显的方式,则:
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);
}
你可以使用约达时间的DateTime
完全相同的方法类型,因为它有一个构造函数接受long
了。 (您可能要考虑一下哪个时区指定虽然...)