国际化项目需要注意的问题

最近在做国际化的项目,在开发过程中,遇到一些问题,记下来警惕自己以后注意这些问题。 

1、时区问题

以泰国举例,相关数据库部署在泰国。如果在中国创建一条数据插入泰国数据库,通过时间控件选择数据的创建时间,这时获取的时间是从浏览器获取 为中国时区时间。需要把这个时间传到后端服务器,存储到数据库,但服务器的时间为泰国时区的时间。中国是东八区 泰国是东七区,相差一个小时。这就会导致两个问题:

             a、创建数据:在前端选的8:00,落到数据库中就会变为7:00

             b、数据查询时的错觉:在前端选择查询8点到9点创建的数据,到后端经过转换会变为查找7:00到8点的消息,返回的数据又会带有相应的时区,导致,数据的一种假象。以为查的是8点到9点创建的数据,而实际看到的是7:00到8点的消息。

问题追踪发现,前端传过来的时间,在经过java时间格式转换后会转换为对应时区的时间。(SimpleDateFormat)

时区问题解决:

1、有海外开发经历的同事说,这种问题一般数据库的时区设置为UTC时间,前端传的数据增加时区的字段,标识自己是哪个时区,后端将这个时间转为UTC时区传给数据库,同时,数据库返回的时间再转为前端需要的时区传递出去,这样会有效避免时区问题。

2、既然我们的数据库已经是当地的时区,无法改变,那一种有效的做法时,登录页面前做个选择时区的页面,用户选择切换到对应的时区,访问对应的数据源。

3、另外一种简单的做法:所有前端的时间去掉时间格式,作为字符串与后端交互。后端将时间转换为字符串传给前端,前端的时间同样处理为字符串传给后端,后端做时间处理,这样就可避免时区问题,做到前端时间可见即可得(前端展示什么,库中就是什么时间)

相关问题:

https://blog.csdn.net/persistencegoing/article/details/89946637

https://blog.csdn.net/octopusflying/article/details/79770956

2、不同语言之间  符号集 是否兼容问题  如【别的语言中是否支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值