我正在尝试在应用中使用日期选择器,设备使用d / m / yy日期格式。我在日期选择器上得到了错误的日期。无论设备的日期格式如何,周围的日期都是正确的。
我读过的所有内容都表明,datepicker使用的是用户为设备选择的格式。
我在livecode中有一个数据输入字段,其中包含以下代码:
on openField
if environment() is "mobile" then
mobilePickDate "date",field "field"
end if
end openField
字段"字段"的值是1/3/15并且在我的设备上选择日期格式我选择了2015年12月31日。这意味着datepicker应该默认为2015年3月1日,而不是2015年1月3日。
其他信息
我尝试了以下代码: -
on openField
set the usesystemdate to true
if environment() is "mobile" then
put field "field" into tdate
convert tdate to dateitems
answer tdate
mobilePickDate "date",field "field"
else
put field "field" into tdate
convert tdate to dateitems
answer tdate
end if
end openField
桌面和移动设备上的消息框文本与日期时间设置相同。桌面返回2015,3,1,0,0,0,1移动返回2015,1,3,0,0,0,7。
桌面正确的手机错误。所以我想知道android是否使用美国日期而不管系统设置如何,就像visual basic一样。
答案 0 :(得分:0)
基于我在这个链接http://forums.livecode.com/viewtopic.php?f=53&t=21655上用餐和响应的测试,很明显,更改设备的日期格式不会改变android编程环境中的格式。所以我开发了以下解决方法。
创建一个确定日期格式的函数
&ttype=arr&date=11/30&time=12:00
将发送到日期选择器的日期转换为" mm / dd / yyyy"格式
function GetDateFormat
set the usesystemdate to true
put "1/3/15" into tdate
convert tdate to dateitems
set itemdel to comma
switch item 2 of tdate
case 1
return "mm/dd/yy"
case 3
return "dd/mm/yy"
end switch
end GetDateFormat
答案 1 :(得分:-1)
尝试在处理程序的顶部将useSystemDate属性设置为true。这将允许LiveCode根据用户的系统日期设置来解释日期选择器的结果。