gpt4 book ai didi

python Office365创建 session 事件

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:10 26 4
gpt4 key购买 nike

我有下面的 python 代码来创建 session 事件,并且它正在工作。我计划将此脚本与 Web 表单提交合并,其中用户输入一些基本信息,例如主题、与会者和 session 日期/时间,然后 Python 脚本将根据 Web 表单提交的信息创建 session 事件。我没有任何问题需要完成,但问题是 session 的时区。

正如您所看到的,Python 脚本需要开始/结束时间,如“2016-08-03T15:00:00-07:00”(-07:00 是 PDT 时间)。但是,Web 表单不知道当前用户的时区(用户可能位于西时区、山区时区、中部时区或东时区)。确定时区是 -7(PDT)、-8(PST)、-6(CT) 太复杂)....

有没有办法根据用户登录查询创建 session 的人当前的时区设置?然后将该时区转换为数字(-7 表示 PDT,-8 表示 PST,-6 CT...)...这样“StartTimeZone”和“EndTimeZone”就有正确的时间?

# Set the request parameters
url = 'https://outlook.office365.com/api/v1.0/me/events?$Select=Start,End'
user = 'user1@domain.com'

pwd = getpass.getpass('Please enter your AD password: ')


# Create JSON payload
data = {
"Subject": "Testing Outlock Event",
"Body": {
"ContentType": "HTML",
"Content": "Test Content"
},
"Start": "2016-08-03T15:00:00-07:00",
"StartTimeZone": "Pacific Standard Time",
"End": "2016-08-03T16:00:00-07:00",
"EndTimeZone": "Pacific Standard Time",
"Attendees": [
{

"EmailAddress": {
"Address": "attendee1@domain.com",
"Name": "User2"
},
"Type": "Required" },

{
"EmailAddress": {
"Address": "attendee2@domain.com",
"Name": "User3"
},
"Type": "Optional" }
]
}

json_payload = json.dumps(data)

# Build the HTTP request
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(url, data=json_payload)
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
# Perform the request
result = opener.open(request)

最佳答案

您可以在客户端使用 JavaScript 获取用户相对于 UTC 的时区偏移量,然后在表单提交期间将此值传递给服务器。请参阅this回答。

更新:

假设您的用户区域设置正确,getTimezoneOffset() 将返回当前区域设置 ( source ) 与 UTC 的时区偏移量(以分钟为单位)。您不必担心夏令时。使用 UTC 时间作为转换基准。获取偏移量后,使用该偏移量将用户指定的 session 时间转换为 UTC 时间,然后将 UTC 时间转换为服务器上使用的时区。

更新2:

我意识到实际上您应该关心夏令时,因为 getTimezoneOffset() 返回当前偏移量,而用户可以在将来的某个地方创建事件,夏令时后会更改此偏移量,并且转换将变得不准确。因此,正确的解决方案不是直接使用当前的 UTC 偏移量,而是使用它来获取随后用于转换的真实时区。 jsTimezoneDetect图书馆可以为您做到这一点。

关于python Office365创建 session 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38728602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com