原生移动日期选择器的日期格式是否取决于设备的日期格式

时间:2015-11-27 23:14:56

标签: android mobile livecode

我正在尝试在应用中使用日期选择器,设备使用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一样。

2 个答案:

答案 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根据用户的系统日期设置来解释日期选择器的结果。