索引
Date
(消息)DayOfWeek
(枚举)Interval
(消息)PhoneNumber
(消息)PhoneNumber.ShortCode
(消息)PostalAddress
(消息)TimeOfDay
(消息)TimeZone
(消息)
日期
表示整个或部分日历日期(例如生日)。一天中的时间和时区要么在别处指定,要么不重要。日期相对于公历。可以表示以下任一情况:
- 包含非零年份、月份和天值的完整日期。
- 月份和天,年份值为零(例如周年纪念日)。
- 单独的年份,月份和天值为零。
- 年份和月份,天值为零(例如,信用卡到期日期)。
相关类型:
google.type.TimeOfDay
google.type.DateTime
google.protobuf.Timestamp
字段 | |
---|---|
year |
日期中的年份。必须介于 1 到 9999 之间,或为 0(即指定不含年份的日期)。 |
month |
一年中的第几个月。必须介于 1 到 12 之间,或为 0(即只指定年份,不指定月份和天值)。 |
day |
一个月中的第几天。必须介于 1 到 31 之间并且对年份和月份有效,或为 0(即天不重要,指定单独的年份或者年份和月份)。 |
DayOfWeek
表示星期几。
枚举 | |
---|---|
DAY_OF_WEEK_UNSPECIFIED |
未指定星期几。 |
MONDAY |
星期一 |
TUESDAY |
星期二 |
WEDNESDAY |
星期三 |
THURSDAY |
星期四 |
FRIDAY |
星期五 |
SATURDAY |
星期六 |
SUNDAY |
星期日 |
间隔
表示时间间隔,编码为开始时间戳(包括)和结束时间戳(不包括)。
开始时间必须小于或等于结束时间。如果开始时间等于结束时间,则间隔时间为空(不匹配任何时间)。如果同时未指定开始时间和结束时间,则该时间间隔与任何时间都匹配。
字段 | |
---|---|
start_ |
可选。间隔时段的开始值(含)。 如果指定了此时间间隔,则与此时间间隔匹配的时间戳必须等于或晚于开始时间。 |
end_ |
可选。间隔时段(含端点值)的结束时间。 如果已指定,则与此间隔时间段匹配的时间戳必须在结束时间之前。 |
电话号码
表示电话号码的对象,适合用作 API 线格格式。
此表示法:
不应用于电话号码的语言区域专用格式,例如“+1 (650) 253-0000 ext. 123”
不适合高效存储
- 可能不适合拨号 - 应使用专用库(请参阅参考文献)来解析号码以实现此目的
如需对此编号执行有意义的操作(例如,根据各种用例设置其格式),请先将其转换为 i18n.phonenumbers.PhoneNumber
对象。
例如,在 Java 中,代码如下所示:
com.google.type.PhoneNumber wireProto = com.google.type.PhoneNumber.newBuilder().build(); com.google.i18n.phonenumbers.Phonenumber.PhoneNumber phoneNumber = PhoneNumberUtil.getInstance().parse(wireProto.getE164Number(), "ZZ"); if (!wireProto.getExtension().isEmpty()) { phoneNumber.setExtension(wireProto.getExtension()); }
字段 | |
---|---|
extension |
电话号码的扩展号码。ITU 建议中未对此扩展进行标准化,但将其定义为一系列数字,长度不得超过 40 位数。除了数字之外,此字段中可能还存储了一些其他拨号字符,例如“,”(表示等待)或“#”。 请注意,目前没有任何地区使用带短号的扩展号码,因此此字段通常仅与 E.164 号码一起设置。它与 E.164 号码分开存储,以便日后扩展短号码。 |
联合字段 kind 。必需。可以是普通号码,也可以是短号码。将来可能会向下面的 oneof 添加新字段,因此客户端应忽略未设置任何所对应字段的电话号码。kind 只能是下列其中一项: |
|
e164_ |
电话号码,以加号 ('+') 开头,后跟采用宽松的 ITU E.164 格式的电话号码,该格式由国家/地区拨号代码(1 到 3 位数)和用户号码组成,且不包含其他空格或格式设置。例如:- 正确:+15552220123 - 错误:+1 (555) 222-01234 x123。 ITU E.164 格式将后者限制为 12 位数,但在实践中,并非所有国家/地区都遵循这一限制,因此我们在此放宽了这一限制。不允许使用仅限国内的电话号码。 参考文献:- https://www.itu.int/rec/T-REC-E.164-201011-I - https://en.wikipedia.org/wiki/E.164。- https://en.wikipedia.org/wiki/List_of_country_calling_codes |
short_ |
短号码。 |
ShortCode
表示短号码的对象。短号码通常比普通电话号码短得多,可用于在彩信和短信系统中设置消息地址,以及用于缩写拨号(例如“发短信至 611 即可查看您的套餐剩余分钟数”)。
短号仅限于特定地区,无法拨打国际短号,这意味着相同的短号可以在不同地区使用,但使用方式和价格各不相同,即使这些地区使用相同的国家/地区电话代码(例如:美国和加拿大)也是如此。
字段 | |
---|---|
region_ |
必需。可以拨打此短号码的地区的 BCP-47 地区代码,例如“US”和“BB”。 参考文献:- http://www.unicode.org/reports/tr35/#unicode_region_subtag |
number |
必需。短号码数字,不带前置加号 (“+”) 或国家/地区电话代码。例如“611”。 |
PostalAddress
表示邮政地址。例如邮政递送或付款地址。给定邮政地址时,邮政服务可以将物品投递到处所、邮政信箱或其他投递地点。此对象不模拟地理位置(道路、城镇、山区)。
在典型的使用场景中,地址将通过用户输入或导入现有数据来创建,具体取决于进程的类型。
有关输入/修改地址的建议:使用支持国际化的地址微件,例如 https://github.com/google/libaddressinput。在使用某个字段的国家/地区之外,不应向用户显示用于输入或修改该字段的界面元素。
如需详细了解如何使用此架构,请参阅:https://support.google.com/business/answer/6397478
字段 | |
---|---|
revision |
所有新版本必须向后兼容旧版本。 |
region_ |
必需。地址的国家/地区的 CLDR 地区代码。系统不会推断此字段,该值由用户确保正确。如需了解详情,请参阅 https://cldr.unicode.org/ 和 https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html。例如:瑞士的地区代码为“CH”。 |
language_ |
选填。此地址内容的 BCP-47 语言代码(如果已知)。这通常是输入表单的界面语言,或者与地址的“国家/地区”中使用的某种语言或其转换后的其他语言相匹配。这可能会影响某些国家/地区的格式,但对数据的正确性并不重要,也不会影响任何验证或其他与格式无关的操作。 如果此值未知,则应省略(而不是指定可能不正确的默认值)。 示例:“zh-Hant”、“ja”、“ja-Latn”、“en”。 |
postal_ |
可选。地址的邮政编码。并非所有国家/地区都使用或要求使用邮政编码,但在使用邮政编码时,它们可能会触发以地址其他部分为参照的额外验证(例如美国的州/邮政编码验证)。 |
sorting_ |
可选。特定于国家/地区的额外排序代码。大多数区域都未使用此功能。在使用时,此值可以是字符串(例如“CEDEX”),可选地后跟数字(例如“CEDEX 7”),也可以是仅包含数字的值,表示“行业代码”(牙买加)、“配送区域指示标志”(马拉维)或“邮局指示标志”(例如科特迪瓦)。 |
administrative_ |
可选。最高行政区划,用于国家或地区的邮政地址。例如,此值可以是州、省、州(俄罗斯)或县。具体来说,对于西班牙,此值为省而非自治区(例如此值为“巴塞罗那”而非“加泰罗尼亚”)。许多国家在邮政地址中不使用行政区划。例如对于瑞士,此字段应留空。 |
locality |
可选。一般是指地址的城市/城镇部分。示例:美国的城市、意大利的市镇、英国的邮镇。对于没有明确定义 locality 或者其无法很好地对应这个结构的区域,应将 locality 留空并使用 address_lines。 |
sublocality |
可选。地址的子级市行政区。例如,此值可以是社区、自治市/镇/区、行政区。 |
address_ |
描述详细地址的非结构化地址行。 由于 address_lines 中的值没有类型信息,并且有时可能在单个字段中包含多个值(例如“Austin, TX”),因此清楚的行顺序很重要。地址行的顺序应该是地址的国家/地区的“信封顺序”。在某些地方,此顺序有可能不同(例如日本),在这种情况下可以使用 address_language 来明确顺序(例如,“ja”表示从大到小排序,“ja-Latn”或“en”表示从小到大排序)。这样就可以根据语言选择地址的具体行。 地址的最小结构化表示形式由 region_code 和 address_lines 组成,其中所有其他信息都放在 address_lines 中。可以在没有地理编码的情况下非常近似地设置此地址的格式,但是在至少部分完成之前,不能对任何地址组成部分进行语义推理。 创建仅包含 region_code 和 address_lines 的地址,然后进行地理编码是处理完全非结构化地址的推荐方法(而不是猜测地址的哪些部分是城市/市镇或行政区)。 |
recipients[] |
可选。此地址的收件人。在某些情况下,该字段可能包含多行信息。例如,它可能包含“转交”信息。 |
organization |
可选。地址对应的组织的名称。 |
TimeOfDay
表示一天中的某个时间。日期和时区不重要,或在别处指定。API 可以选择允许闰秒。相关类型为 google.type.Date
和 google.protobuf.Timestamp
。
字段 | |
---|---|
hours |
一天中的时段(采用 24 小时制)。必须大于或等于 0,通常必须小于或等于 23。对于业务结束时间等场景,API 可以选择允许“24:00:00”一值。 |
minutes |
一小时中的分钟数。必须大于或等于 0,小于或等于 59。 |
seconds |
一分钟中的秒数。必须大于或等于 0,通常必须小于或等于 59。如果 API 允许闰秒,则 API 可以允许 60 一值。 |
nanos |
秒数的小数部分(以纳秒为单位)。必须大于或等于 0,且小于或等于 999,999,999。 |
TimeZone
表示 IANA 时区数据库中的时区。
字段 | |
---|---|
id |
IANA 时区数据库中的时区。例如“America/New_York”。 |
version |
可选。IANA 时区数据库版本号。例如“2019a”。 |