签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
在wincc中,用户归档查询出来的时间会经过时区转换成本地时间,也就是说wincc数据库中使用的时间值统一使用的是UTC时间,那么我们在记录归档时,时间需要转成UTC的时间,在归档查询出来时,才能得到正确的时间。那么现在需要获取本地时间值,并转换为UTC时间,供报表记录脚本使用(变量类型为日期时间型),这样的功能应该怎么实现,系统 有没有现成的函数。语言的使用不限,VBS和C都可以,谢谢!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1456430&b_id=5&s_id=0&num=5
时间减8小时。
vbs使用dateadd 函数。
如果用了以太网模板这个时区变更是可以更改的,直接更改设置为本地时区,而如用CPU里的就无法更改,只好按与格林尼治时间的差值做调整。北京时间便是减8小时。
If TimeBegin Like "####-##-## ##:##:##" Then /////这里要检查输入的时间格式
UTCTimeBegin = DateAdd("h", -8, TimeBegin) //////-8小时的操作
UTCTimeBegin = Replace(UTCTimeBegin, "/", "-")
/////在这里减去8小时后,好像时间格式会反正一些变化,会自动替换-,只能用脚本又把它换回来。"####-##-## ##:##:##" 这种格式是wincc认的
Else
GoTo TimeError
End If
If TimeEnd Like "####-##-## ##:##:##" Then
UTCTimeEnd = DateAdd("h", -8, TimeEnd)
UTCTimeEnd = Replace(UTCTimeEnd, "/", "-")
参考我编的代码:
Inputdate 换成 日期时间 控件的值,或者日期时间格式的字符串,读取系统时间就填 NOW
https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1456791&b_id=65&s_id=0&num=0#anch
测试过仅用 Datedd函数不调整标准格式为 ####-##-## ##:##:##是查不到数据的
“”2018-1-21 21:5:5” 要调整为 ” 2018-01-21 21:05:05” 即0不能省去
这个有固定函数的啊 UTC转本地,本地转UTC都是有固定函数的
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录