所以我将一个Date.toString()发送到一个Android手机,服务器在一个国家,我如何格式化时间,使其显示相对于手机的时区?
例如,如果服务器向手机发送5点CDT,那么手机将显示10点钟的utc?
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
如果跨字符串发送不是绝对要求,则另一种解决方案是发送UTC毫秒并根据用户时区重新构建时间。
// on the sever side
final Date serverTime = new Date();
sendToClient(serverTime.getTime());
System.out.println("Time sent by server: " + serverTime);
// on the client
final long ms = receiveFromServer();
final Date clientTime = new Date();
clientTime.setTime(ms);
System.out.println("Time received by client: " + clientTime);
答案 1 :(得分:0)
如果您能够以毫秒为单位发送UTC时间,那么请查看DateUtils.formatDateTime(...),它将使用本地约定格式化并返回String。
使用DateUtils.FORMAT_XXX
参数的flags
常量来指定要包含的组件(工作日,年份等)。