我怎样才能只从 textClock 获得小时

Posted

技术标签:

【中文标题】我怎样才能只从 textClock 获得小时【英文标题】:how can i get the Hour only from textClock 【发布时间】:2020-10-07 06:00:57 【问题描述】:

在此我试图从 textclock 中仅获取一个小时并显示在我的小部件上,它在 android 设备上完美运行,当在 BlackBerry 上进行测试时,它显示完整的时间,例如下午 12:50 而不是小时

              <TextClock
                android:id="@+id/tvHourWidget"
                android:layout_
                android:layout_
                android:fontFamily="sans-serif-black"
                android:format12Hour="hh"
                android:text="00"
                android:textColor="@color/colorPrimary"
                android:textSize="@dimen/basic_twice" />

这是我尝试过的代码

【问题讨论】:

java代码在哪里? 没有我用过的java代码,我认为文本时钟不需要java代码 所以只是android:format12Hour="hh" 属性会导致不同设备上的不同行为? 有些情况下时钟是 24 小时制。尝试添加android:format24Hour="hh" 属性。 是的,它会导致设备上的不同行为 【参考方案1】:

您不能设置设备是 12 小时制还是 24 小时制,也不能在 TextView 中设置。因此,您必须同时使用 format12Hourformat24Hour 属性以确保在这两种情况下,格式均为 hh

<TextClock
            android:id="@+id/tvHourWidget"
            android:layout_
            android:layout_
            android:fontFamily="sans-serif-black"
            android:format12Hour="hh"
            android:format24Hour="hh"
            android:text="00"
            android:textColor="@color/colorPrimary"
            android:textSize="@dimen/basic_twice" />

【讨论】:

【参考方案2】:

您可以使用 textview 、timer 和 simpledateformater 代替并设置所需的 DATETIME 格式

Timer tmm=new Timer();
public void start(TextView tv1)


    tmm.schedule(new TimerTask() 
        @Override
        public void run() 
            tv1.setText(""+ my_time("HH"));
        
    ,1000,1000);


public void Stop()

    tmm.cancel();



        public static String my_time(String format)
        
            try
                return new SimpleDateFormat(format).format(Calendar.getInstance().getTime());


            catch (Exception ex)
            return null;
        

【讨论】:

以上是关于我怎样才能只从 textClock 获得小时的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能在时间属性中获得现在的时间?

如何每小时调用一次函数?另外,我怎样才能循环这个?

我怎样才能获得所有开放的会话?

我怎样才能获得每个国家的最大值

我怎样才能获得倒排索引?

sh 我怎样才能获得当前的工作目录?