Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TimePicker 12小时制转换有问题 #284

Open
bibubi opened this issue Dec 21, 2021 · 8 comments
Open

TimePicker 12小时制转换有问题 #284

bibubi opened this issue Dec 21, 2021 · 8 comments
Labels

Comments

@bibubi
Copy link

bibubi commented Dec 21, 2021

按正确的时间理解,应该是 12:00 AM = 凌晨0点 =24点, 12:00 PM = 中午12点 (因为11:59 AM 还是AM,到12才跳PM)
在测试中,设置TimePicker 的TimeModeTimeMode.HOUR_12_NO_SECOND
当setDefaultValue时候
TimeEntity.target(0, 0, 0) -> wheel显示 1:0 AM (正常应该是显示12:00 AM)
TimeEntity.target(12, 0, 0) -> wheel显示 12:00 AM (正常应该是显示12:00 PM)
TimeEntity.target(24, 0, 0) -> wheel显示 12:00 PM (正常应该是显示12:00 AM) //但其实这个应该视为不合法,因为24点其实等于0点

可能描述有点复杂,或者我理解有问题,望作者回复

@liyujiang-gzu
Copy link
Member

liyujiang-gzu commented Dec 21, 2021

里面24小时制和12小时制复用代码,逻辑有点饶。

12点是正午,既不是AM也不是PM,是我理解有误。特意查了下资料:

美国国家标准与技术研究所(NIST)给出的答案:
中午12点为:12:00 noon
午夜12点为:12:00 midnight
----------------------------------------------
十二小时制以数字12、1、2、3、4、5、6、7、8、9、10、11依次序表示。
午前12点表达为12:00 noon,前后一分钟的时间分别是11:59 AM和12:01 PM。
午夜12点表达为12:00 midnight,前后一分钟的时间分别是11:59 PM和12:01 AM。

@liyujiang-gzu
Copy link
Member

@bibubi 试试这个临时版本:implementation 'com.github.gzu-liyujiang:AndroidPicker:9fe37e9f53'

@bibubi
Copy link
Author

bibubi commented Dec 22, 2021

我是从iPhone的闹钟那里做了对比。
当你时间拨动时间,从上午 11:00 向12:00拨动的瞬间,会变成下午 12:00。 表示从早上过渡到了下午。
或者从下午 11:00向12:00拨动的话,会变成上午12:00。表示从晚上过渡到第二天早上。符合人的思维习惯?

@liyujiang-gzu
Copy link
Member

我是从iPhone的闹钟那里做了对比。 当你时间拨动时间,从上午 11:00 向12:00拨动的瞬间,会变成下午 12:00。 表示从早上过渡到了下午。 或者从下午 11:00向12:00拨动的话,会变成上午12:00。表示从晚上过渡到第二天早上。符合人的思维习惯?

试了下安卓小米手机自带的闹钟,从上午 11 向 12 拨动的瞬间,会变为下午;反之从下午 12 向 11 拨动的话会变成上午。

@liyujiang-gzu
Copy link
Member

小米手机自动的是上午下午放在第一级,所以要联动第二级的小时。这个库的AM/PM是放在第三级,不和小时联动。

@bibubi
Copy link
Author

bibubi commented Dec 23, 2021

我是从iPhone的闹钟那里做了对比。 当你时间拨动时间,从上午 11:00 向12:00拨动的瞬间,会变成下午 12:00。 表示从早上过渡到了下午。 或者从下午 11:00向12:00拨动的话,会变成上午12:00。表示从晚上过渡到第二天早上。符合人的思维习惯?

试了下安卓小米手机自带的闹钟,从上午 11 向 12 拨动的瞬间,会变为下午;反之从下午 12 向 11 拨动的话会变成上午。

嗯 iPhone也是一样的逻辑

@xuhuanli
Copy link

xuhuanli commented Aug 1, 2022

0点设置不进去吗 12:01 AM 这个表示深夜0点1分有点怪

@liyujiang-gzu
Copy link
Member

0点设置不进去吗 12:01 AM 这个表示深夜0点1分有点怪

0点这个,你设置成24小时制,12小时制不存在0点

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants