将字符串格式化为日期或Django中的任何其他数据类型

时间:2017-11-09 06:51:55

标签: python django python-3.x date salesforce

我正在使用Python 3.6和Django 1.11。我的后端数据库是Salesforce。

我正在尝试在Salesforce中保存日期字段,该字段以字符串

的形式从用户接受

str_var = '11 / 09/2017'

希望将其转换为not_a_str_var = 11/09/2017

我尝试了几个日期时间,日期功能但没有成功。 我也尝试过使用strptime()和strftime()方法。

我使用simple-salesforce REST API从django向Salesforce传递值。 预期的插入语句是

dataToSFDC = [{'Birthdate':11/09/2017,'FirstName':'testfname','LastName':'testlname','Email':'test@gmail.com','AccountId':' 0011F0000043u7fQAA'}]

sf1 = salesforceConnection()

sf2 = sf1.bulk.Contact.insert(dataToSFDC)

请建议

2 个答案:

答案 0 :(得分:1)

根据此link,应将日期作为UTC日期时间传递,因此:

import pytz
from datetime import datetime

d = datetime.strptime('11/09/2017', '%m/%d/%Y')
dataToSFDC = [{'Birthdate': pytz.utc.localize(d).isoformat()}]

编辑:有一个错字:pytz.utc。本地化

编辑2:salesforce dates描述日期格式。希望以下应该有所帮助。

d = datetime.strptime('11/09/2017', '%m/%d/%Y').strftime('%F %T')
dataToSFDC = [{'Birthdate': d}]

答案 1 :(得分:0)

快速而肮脏的方法是:

library(tibble)
dataList = tibble(month_list = list(c("01", "02", "03", "04", "05", "06")) , year = 2017, 
                  pdays = list(c("31", "7", "31", "30", "31", "31")), 
                  apis = '05-001', 
                  formation_code = list(c("Java", "Java", "Java", "Java", "JS", "Java")))

dataList = add_row(dataList, month_list = list(c('01', '02')) , year = 2017, 
                  pdays = list(c("31", "30")), 
                  apis = '06-001', 
                  formation_code = list(c("JS", "Java")))

View(dataList)