【问题标题】:C program for fetching the date time of centOS server from ubuntu server?用于从 ubuntu 服务器获取 centOS 服务器日期时间的 C 程序?
【发布时间】:2015-01-26 20:04:20
【问题描述】:

我想要一个 C 程序通过 UDP 从 Ubuntu 服务器获取 centOS 服务器的日期时间。我写了一个代码,它获取 UTC 时间戳,它是 centOS 中实际日期时间 +06 小时的时间。不允许使用 NTP。

我使用 setsockopt、getsockopt、sendto 和 recvfrom 进行联网。

端口号 1099 & Centos 时区是 CST,ubuntu 时区是 UTC。假设,Centos 是 2014 年 11 月 28 日星期五 03:06:25,那么 ubuntu 正在接收 2014 年 11 月 28 日星期五 09:06:25 即 +0600 小时。格式为 UTC 时间戳。

有没有办法从ubuntu中获取centOS中日期时间的等效UTC时间戳?

我正在尝试同步 centOS 和 Ubuntu 机器的日期时间,而不考虑时区。

请帮忙!任何想法或建议。

谢谢。

【问题讨论】:

  • 您使用什么端口号与centOS 服务器通信?另外,您能否举例说明您收到的时间戳,以及您希望收到的“实际日期时间”的格式?
  • @TonyB 端口号 1099 & Centos 时区是 CST,ubuntu 时区是 UTC。假设,Centos 是 2014 年 11 月 28 日星期五 03:06:25,那么 ubuntu 正在接收 2014 年 11 月 28 日星期五 09:06:25 即 +0600 小时。格式为 1417165610。
  • @KK "Fri, 28 Nov 2014 09:06:25" 是“Fri, 28 Nov 2014 03:06:25 CST”的 UTC 时间戳。你真正想做什么?
  • @nos 嗨,2014 年 11 月 28 日星期五 03:06:25 的时间戳是 1417124185。但我收到了 1417145785,这是 2014 年 11 月 28 日星期五 09:06:25 的时间戳。我想要 centos 日期时间的时间戳,即 1417124185,以便我可以将其转换并设置为 ubuntu 服务器。
  • 编辑您的问题以显示一些代码和一些交换的数据。仅在 UTC 时间工作(相对于时代,例如 time_t...)。阅读adjtimex(2)time(7)

标签: c linux unix ubuntu centos


【解决方案1】:

我想 CenOS CST 是 http://en.wikipedia.org/wiki/Central_Standard_Time (UTC-6)。所以Fri, 28 Nov 2014 03:06:25 CSTFri, 28 Nov 2014 09:06:25 UTC 相同。所以您收到正确的 UTC 时间戳。

从问题中不清楚您是否编写了正在发送时间戳的服务器。

无论如何,要转换时间戳看看:

  • gmtime() - 将时间戳解释为 UTC;
  • localtime() - 将时间戳解释为本地时间(考虑时区)
  • tzset() - 更改 localtime() 使用的时区(以及其他一些功能)

此外,如果您需要以字符串表示形式解析时间,strptime() 可能会有所帮助(请记住,不同操作系统上的区域名称/含义可能不同或缺失)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多