设定系统时区 System Time Zone

一.说明

ERP系统安装后,系统时区(System Time Zone)默认为CET(中欧),也就是德国SAP总部的时区时,本地化的应用则建议修改。本文描述将其修改成中国的时区时(UTC+8),也就是格林威治标准时加8小时。

SAP的时区设置包括两个部分:系统时区(System Time Zone)、用户默认时区(User’s Default Time Zone),本例是将两者均设定一个值。此项配置属于NetWeaver,也适用于其它SAP系统(如CRM等)。

二.操作

IMG路径

Transaction Code

SAP 用户化实施指南→SAP NetWeaver → General Settings →时区→维护系统设置

STZAC

表1 操作路径

       操作方法有两种:1、在后台按表1所示IMG路径进入操作(如图1所示);2、在前台输入事物码STZAC进入操作。

图1 IMG操作路径

       操作初始,系统弹出对话框(如图2所示),如果系统、用户默认的时区均更改则点“是”按钮,如果不更改系统只更改用户默认则点“否”按钮。本文点“是”按钮继续。

 

图2 提示对话框

       图3是时区设定的初始界面,系统时区(英文System Time Zone)、用户默认时区(英文User’s Default Time Zone)两项均可更改,初始值为“CET”(中欧)。将其改成中国的时区UTC+8,如图4所示。

图3 初始界面

图4 修改后界面

       设定好后就可点击保存键()保存,由于Client配置的不同(使用TCODE:SCC4维护),系统也许会弹出请求号输入对话框,新建或选定一个请求号继续执行。保存成功后,连续按返回键()退出操作。

### 获取和处理用户时区 `user.timezone` #### Java 中获取和设置用户时区 在Java应用程序中,可以通过`System.setProperty()`来设置用户的时区属性。对于获取当前的应用程序时区配置,则可以利用`System.getProperty("user.timezone")`方法。 如果遇到类似前端显示的时间比实际服务器时间少8小时的情况,这可能是由于JVM启动参数中的`user.timezone`被设为了`UTC`而不是本地时区所引起的[^5]。因此,在应用启动时通过指定 `-Duser.timezone=Asia/Shanghai` 参数能够确保时间和服务器保持一致。 ```java // 设置 JVM 的默认时区为上海 System.setProperty("user.timezone", "Asia/Shanghai"); // 获取当前 JVM 配置的时区 String currentZone = System.getProperty("user.timezone"); ``` 当需要创建带有特定时区的时间对象时,应该显式地指明所需的时区: ```java import java.util.TimeZone; import java.text.SimpleDateFormat; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 使用亚洲/上海作为目标时区 Date date = new Date(); System.out.println(sdf.format(date)); ``` 以上代码片段展示了如何将日期格式化器关联到具体的时区,并打印出带有时区信息的时间字符串[^1]。 #### Go 语言中获取和设置用户时区 Go语言里并没有直接提供全局修改`user.timezone`的方式,不过可以在读取数据库记录之前设定好相应的地点(Location),从而影响后续所有基于该位置的操作。例如,在初始化ORM框架Gorm连接池前定义好location变量并传递给它即可实现相同效果[^3]。 ```go import ( "database/sql" _ "github.com/go-sql-driver/mysql" "time" ) func init() { location, err := time.LoadLocation("Asia/Shanghai") if err != nil { panic(err.Error()) } dsn := "username:password@tcp(localhost:3306)/dbname?parseTime=true&loc=" + url.QueryEscape(location.String()) db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) } ``` 这段示例说明了怎样把MySQL驱动与自定义的位置相结合起来建立新的会话链接,其中包含了对解析时间和所在地区的支持。 #### R 语言中获取系统时区 而在统计编程环境中如R语言,可通过内置函数`Sys.timezone()`轻松查询计算机当前所在的时区名称[^4]。 ```r current_timezone <- Sys.timezone() print(current_timezone) ``` 此命令将会输出操作系统级别的时区标识符,比如`"Asia/Shanghai"`或`"America/New_York"`等形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值