首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Edifact d96a ..txt文件中读取交付日期?

如何从Edifact d96a ..txt文件中读取交付日期?
EN

Stack Overflow用户
提问于 2016-06-02 07:59:24
回答 2查看 708关注 0票数 1

我在从EDI发送的..txt文件中检索交付日期时遇到了问题。

我的客户必须有机会在..txt文件中设置行:

'DTM+76:20160702:102

当他们从网站上订购一些东西来设定未来交货日期的时候。

我希望获得日期(在本例中是2016-07-02),并将其设置为交付日变量(然后在数据库中设置)。

我正在考虑使用java中的Scanner来查看该文件是否包含文本"DTM:76“,然后读取日期--类似于Find a string (or a line) in a txt File Java的行的一部分。电子数据交换是否可能/有效,还是有更好的方法?

对我来说最好的解决办法是这样的:

代码语言:javascript
运行
复制
    if (DTM+76:YYYYMMDD::102 exists)
            {
                //set the deliveryDate by getting only YYYYMMDD from DTM:76:20160702:102
                deliveryDate= get..("20160702");
            }

关于电子数据交换和交货日期的信息:http://www.gs1.org/sites/default/files/docs/eancom/ean02s4/part2/insdes/053.htm https://www.stylusstudio.com/edifact/D96A/ORDERS.htm

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-02 09:02:14

当我们解析EDIFACT时,我们将EDIFACT分割成分段,然后是元素,然后是使用如下正则表达式的组件:

代码语言:javascript
运行
复制
String edi = "UNH+..."; // full edifact as string here

// split EDIFACT string into segments
String[] segments = edi.split("(?<!\?)'");

// loop through segments to find one beginning with DTM+
// lets assume its 3rd segment in array
String dtmSegment = segments[2];

// split DTM segment to get its elements
String[] dtmElements = dtmSegment.split("(?<!\?)\+");

// get date, time, period element
String dtmElement = dtmElements[1];

// split dtmElement to get date/time/period components
String[] dtmComponents = dtmElement.split("(?<!\?):");

// get date/time/period component value
String deliveryDate = dtmComponents[1];

注意:当完整的EDIFACT被分割为分段时,分段分隔符'将从每个段字符串中删除。当将元素和组件拆分为单个字符串时,情况也是如此。

票数 1
EN

Stack Overflow用户

发布于 2016-06-02 08:24:44

我建议使用模式匹配和regex,以匹配一个有效行的出现,即DTM+76:后跟一个有效的日期格式。

请参见JDoc:

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

现在,如果找到匹配,您可以轻松地获得匹配的日期部分(尾随: char),然后将其添加到DB中。

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

https://stackoverflow.com/questions/37585921

复制
相关文章

相似问题

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