首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将交付日期设置为Konik的ZUGFeRD库中的一个时间段?

如何将交付日期设置为Konik的ZUGFeRD库中的一个时间段?
EN

Stack Overflow用户
提问于 2016-07-10 20:34:44
回答 3查看 308关注 0票数 1

我使用Konik的Java库ZUGFeRD格式中创建电子发票。我想把交货日期定为一段时间。"Q3 2016")。理想情况下,我希望使用自定义字符串来表示此日期。

当实例化一个ZfDate对象作为我发票的一部分时,库需要传递一个Delivery对象。由于ZfDate (及其子类)是基于java.util.Date的,所以我根本不知道如何处理这个上下文中的时间段或自定义字符串。

这是这个库的限制还是一般的ZUGFeRD规范的限制?有解决办法吗?

据我所知,从法律的角度来看(在德国),在(纸质)发票上使用一段时间是可以的,所以在电子格式上支持这个功能也是很好的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-11 21:59:26

的类型层次结构。

ZfDate,您将看到3个子类型。

这3种类型也代表了ZUGFeRD中允许的当前可能性。

  • 日子与代码102与字符串yyyyMMdd
  • 以代码610的形式使用字符串yyyyMM作为一年中的月份。
  • 一年中的一周作为代码616与字符串yyyyww

请记住,在您的ZUGFeRD发票中有“2016年7月至12月”这样的花哨日期将使其他各方难以或不可能自动处理发票。如果可能的话,保持简单。另外,不要忘记,您可以将这种类型的信息放在发票的可视化表示(pdf仅部分)上,因为在大多数情况下,这些信息都是专为人类准备的。

票数 1
EN

Stack Overflow用户

发布于 2016-07-10 20:48:22

java.util.Date代表时间上的瞬间,所以不能用时间来表示句点(一系列的瞬间)。

您有三个明显的选项,即作为“即时”使用的期间的第一、中或最后一次。

票数 3
EN

Stack Overflow用户

发布于 2016-07-10 23:56:57

注意:我不熟悉Konik库、ZUGFeRD或其底层规范。但我很好奇,有点好奇。

Zf…

是的,ZfDate扩展了java.util.Date类。然后,将ZfDate扩展到其他三个Zf…类。

正如波希米亚的正确答案所说,这意味着您不能存储日期范围,因为数据类型代表时间线上的单个时刻。不过,读了一下我发现的“发票期”。

java.time

来自java.util.Date的继承是不幸的,因为与最早版本的Java捆绑在一起的旧日期时类现在是遗留下来的。它们已经被内置到Java8及更高版本中的java.time框架所取代。见Oracle教程。java.time的许多功能都在三次-支持中移植到Java6&7,并进一步适应了ThreeTenABP中的安卓。

java.time类包括java.util.Datejava.time.Instant的替换,以及另外3个Zf…java.time.YearMonth中的至少一个。扩展java.time的ThreeTen-Extra项目包括YearQuarterYearWeekInterval等类。

发票数据模型

按照您的链接,这是不容易确定确切的完整规格。但是链接的链接带我到:

带有UN/CEFACT CII实施指南的欧洲核心发票数据模型指南.第2部分:欧洲核心发票数据模型

发票期

去找Rq024。在第15页的表格中,找到“发票期间信息”的定义。

对于在一段时间内交付的服务或项目收取费用的发票,如订阅或计量服务,核心发票可能包含有关发票适用日期的信息。

作为该期间的一部分,它定义了一对日期,即“发票期间开始日期”和“发票期间结束日期”。不幸的是,我找不到“日期”的任何定义。除了这对日期之外,我也没有注意到任何一段时间的规定,但我只是快速地细读了一下。

ISO 8601

如果您在发票中使用Strings作为符号,请查看ISO 8601标准中表示各种日期-时间值的字符串格式。国际标准化组织的标准不是免费提供的,所以要么购买一份副本,要么研究这个维基百科页面中的概要。

该标准定义了一年中的一周,并提供了表示法,例如2016-W27用于某一周,2016-W27-7用于该周中的特定一天。

对于开始/结束对,使用斜杠作为分隔符。例如:“2007-03-01T13:00:00Z/2008-05-11T15:30:00Z”。

对于未绑定到时间线的时间跨度,请使用PnYnMnDTnHnMnS。例如,三个月的P3M

不幸的是,标准没有规定季度。有些人非正式地使用带有Q文字(如2016-Q1 )的ISO8601的样式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38296241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档