Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 本机移动日期选择器的日期格式是否取决于设备的日期格式_Android_Mobile_Livecode - Fatal编程技术网

Android 本机移动日期选择器的日期格式是否取决于设备的日期格式

Android 本机移动日期选择器的日期格式是否取决于设备的日期格式,android,mobile,livecode,Android,Mobile,Livecode,我正在尝试在应用程序中使用日期选择器,该设备使用d/m/yy日期格式。我在日期选择器上选错了日期。无论设备的日期格式如何,都要解决哪些问题,以确保日期正确无误 我读到的所有内容都建议datepicker使用用户为设备选择的格式 我在livecode中有一个数据输入字段,其代码如下: on openField if environment() is "mobile" then mobilePickDate "date",field "field" end if en

我正在尝试在应用程序中使用日期选择器,该设备使用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日的choose date格式。这意味着日期选取者应该被撤销到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是否会像VisualBasic一样使用American date而不考虑系统设置。

尝试在处理程序顶部将useSystemDate属性设置为true。这将允许LiveCode根据用户的系统日期设置解释日期选择器的结果。

根据我在该链接上进行的测试和响应,显然更改设备的日期格式不会更改android编程环境中的格式。因此,我开发了以下解决方法

创建一个函数来确定日期格式

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
将发送到日期选择器的日期转换为mm/dd/yyyy格式

on openField

   set the usesystemdate to true
   put field "field" into tdate

   if environment() is "mobile" then

      switch GetDateFormat()

        case "mm/dd/yy"

            set itemdel to "/"

            put item 2 of tdate & "/" & item 1 of tdate & "/" & item 3 of tdate into tdate

      end switch

      convert tdate to dateitems
      mobilePickDate "date",tdate

   end if

end openField

我试过了,但运气不好。无论useSystemDate属性如何,日期选择器在mobilePickDate日期字段后显示的值保持不变。我注意到,在桌面环境中,使用put field field into tdate convert tdate to DATETIMES ANSWERT tdate会根据useSystemDate属性给出不同的结果