Datetime 计算每日和年度利润的时区问题

Datetime 计算每日和年度利润的时区问题,datetime,time,timezone,timezone-offset,date-arithmetic,Datetime,Time,Timezone,Timezone Offset,Date Arithmetic,好的,这是一个核心问题,我和我的朋友正在讨论正确的编程解决方案 假设我在UTC-4时间在纽约经营一家公司 我的销售代表在旧金山,时间是2013年12月31日11:00(上午1:00,2014年1月1日在我的时间)进行销售,净公司1000000美元。他将2013年12月31日的销售记录在系统中,但实际上,在我的时代,它发生在2014年1月1日 对于我的2013年报告,我是将1000000美元作为利润,还是将其纳入我的2014年报告 一个相关的问题需要深入研究这个问题。。。大多数公司如何计算12月3

好的,这是一个核心问题,我和我的朋友正在讨论正确的编程解决方案

假设我在UTC-4时间在纽约经营一家公司

我的销售代表在旧金山,时间是2013年12月31日11:00(上午1:00,2014年1月1日在我的时间)进行销售,净公司1000000美元。他将2013年12月31日的销售记录在系统中,但实际上,在我的时代,它发生在2014年1月1日

对于我的2013年报告,我是将1000000美元作为利润,还是将其纳入我的2014年报告

一个相关的问题需要深入研究这个问题。。。大多数公司如何计算12月31日的每日销售额?是公司总部时区午夜后的最后24小时,还是市场各时区的12月31日

此外,如果您只为销售输入了日期(YYYY-MM-DD),由于UTC日期分布在两个唯一的日期上,该如何转换并存储在UTC中

下面是我用来分析这个问题的有用工具:

从实用角度来看:

  • 你在哪一个工作日记录销售额可能无关紧要。许多企业提前结束他们的日子,不一定是在午夜钟声敲响时

  • 一些企业可能使用其总部的时区,一些企业可能使用销售地点的时间。这两种方法都可能有效

  • 当然,如果这是一个实际问题,那么你应该询问会计师或税务律师。答案可能因行业、州或国家而异

关于您的问题的技术部分:

  • 没有时间或时区的日期就是日期。把它想象成日历上的一个逻辑位置,而不是瞬间的一个独特时刻

  • 如果没有其他上下文,则无法将其转换为UTC。或者任何其他时区

  • 由于UTC是一个计时系统,而不是时区,因此从技术上讲,UTC日并不存在,但这只是一种语义。尽管如此,“UTC日”的概念仍然只涵盖一个日历“日期”——因为这是“日期”定义的一部分

  • 只是“UTC日”与“纽约日”不一致。就像“纽约日”和“洛杉矶日”并不完全一致

  • 要想让你的头脑更加清醒,想想不是每一天都是24小时。由于夏令时转换,“一天”可能会延长23、23.5、24.5或25小时。当然,大多数是“标准日”——也就是24小时

  • 如果你能将当地时间与日历上的位置分开,而瞬时时间是通用的,那么你会发现这一切都是有意义的

  • 你提到的那个网站有很好的可视化效果,我也经常提到它。但我认为它应该有一个不同的名字,因为它不包括每个时区。小心使用它。参见讨论的IANA数据库,该数据库有500多个分区

  • 我不知道您使用的是什么语言或数据库,但您可能会发现我最近在中描述的概念很有用。具体来说,请阅读标题为“时区转换”的部分。即使使用其他技术,同样的概念也适用