16.[SAP ABAP] ABAP中日期与时间

16.[SAP ABAP] ABAP中日期与时间

文章目录

在SAP ABAP中,日期和时间的处理时开发中非常常见的需求。ABAP提供了多种内置数据类型、系统字段、函数模块(Function Modules)以及类来支持灵活且准确的时间处理。

一、基本数据类型

类型 描述 格式示例
D(或DATS) 日期类型,8位字符型 20251226表示2025年12月26日
T 时间类型,6位字符型 1220220 表示22:40:30
TIMESTAMP 短时间戳(UTC),DEC(15,0) 20251226224430
TIMESTAMPL 长时间戳(含微秒),DEC(21,7) 20251226224430.1234567

注意:DT 是字符型,但 ABAP 运行时会自动将其当作数值进行加减运算(如 sy-datum + 1 表示明天)。

二、常用系统字段(SYST结构)

字段 含义
SY-DATUM 应用服务器本地日期(YYYYMMDD)
SY-UZEIT 应用服务器本地时间(HHMMSS)
SY-DATLO 用户所在时区的本地日期
SY-TIMLO 用户所在时区的本地时间
SY-ZONLO 用户时区(如 'Asia/Shanghai'
SY-TZONE 系统时区与 UTC 的偏移(秒数)

三、获取当前日期/时间

ABAP 复制代码
REPORT Y_GOY_MSG.
DATA: lv_date type d,
      lv_time type t.

lv_date = sy-datum.
lv_time = sy-uzeit.

WRITE: / '今天是:' , lv_date.
WRITE: / '今天是:' , lv_date DD/MM/YYYY.
WRITE: / '当前时间:', lv_time USING EDIT MASK '__:__:__'.

四、日期/ 时间计算(自动处理月末、闰年等)

ABAP 复制代码
DATA: lv_tomorrow TYPE d,
      lv_yesterday TYPE d.

lv_tomorrow  = sy-datum + 1.
lv_yesterday = sy-datum - 1.

WRITE: / '昨天:', lv_yesterday.
WRITE: / '明天 :', lv_tomorrow.

五、时间戳(Timestamp)处理

1. 获取当前时间戳(UTC)

ABAP 复制代码
DATA: lv_short  TYPE timestamp,
      lv_long   TYPE timestampl.

GET TIME STAMP FIELD lv_short.
GET TIME STAMP FIELD lv_long.

WRITE: / '短时间 (local):', lv_short TIME ZONE sy-zonlo.
WRITE: / '长时间  (local):', lv_long  TIME ZONE sy-zonlo.

2.时间戳 ↔ 日期时间转换

ABAP 复制代码
DATA: lv_ts   TYPE timestamp,
      lv_date TYPE d,
      lv_time TYPE t.

GET TIME STAMP FIELD lv_ts.

CONVERT TIME STAMP lv_ts TIME ZONE sy-zonlo
  INTO DATE lv_date TIME lv_time.

WRITE: / 'Converted date:', lv_date,
       / 'Converted time:', lv_time USING EDIT MASK '__:__:__'.

六、外部格式转换(如 "2025-12-26" → 内部 "20251226")

可自定义函数或使用标准函数如:

  • CONVERT_DATE_TO_INTERNAL
  • CONVERT_DATE_TO_EXTERNAL
相关推荐
爱喝水的鱼丶21 小时前
SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第八篇:复杂业务场景下的声明组合:结构嵌套内表、内表包含结构的实现方法
运维·数据库·学习·算法·sap·abap
小羔羊的官方学习账号2 天前
树状展开BOM以及保存到本地
sap·abap·bom
Henry-SAP3 天前
BOM层级传递与MRP计划生成实战解析
人工智能·sap·erp
Henry-SAP3 天前
SAP MRP核心概念与学习路线解析
人工智能·sap
ERP面壁者5 天前
WTEW的操作记录
sap
爱喝水的鱼丶6 天前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流
爱喝水的鱼丶7 天前
SAP-ABAP:数据类型与数据对象(8篇) 第四篇:关系映射篇——从类型定义到对象实例的转化逻辑
开发语言·数据库·学习·sap·abap
爱喝水的鱼丶7 天前
SAP-ABAP:ABAP函数 NUMBER_GET_NEXT 详解:从编号范围对象获取下一个编号
运维·数据库·学习·sap·abap
爱喝水的鱼丶8 天前
SAP-ABAP:数据类型与数据对象 第二篇:底层逻辑篇——数据类型的分类体系与底层存储原理
运维·开发语言·学习·sap·abap
HeathlX9 天前
SAP-BTP :(7)RAP-EML
abap