【问题标题】:How do i set date formats from one country to another?如何设置从一个国家到另一个国家的日期格式?
【发布时间】:2011-10-16 13:42:48
【问题描述】:

所以我将 Date.toString() 发送到 Android 手机,服务器位于一个国家/地区,我如何格式化时间以使其显示相对于手机的时区?

例如,如果服务器将 5 点钟 CDT 发送到手机,那么手机会显示 10 点钟 UTC 吗?

关于我应该如何实现这一目标的任何想法?

【问题讨论】:

  • 你能控制服务器如何格式化时间吗?
  • 是的,我有完全的控制权,目前我只发送字符串,发送它的最佳方式是什么,所以它可以在客户端重建?

标签: java android date time


【解决方案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);

【讨论】:

【解决方案2】:

如果您能够以毫秒为单位发送 UTC 时间,请查看DateUtils.formatDateTime(...),它将使用本地约定格式化并返回字符串。

使用flags 参数的DateUtils.FORMAT_XXX 常量来指定要包含的组件(工作日、年份等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 2013-08-01
    • 2015-07-18
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多