android時間的類型
我的日期數據是年月日沒有時間,我試了用date類型然後在Navicat
Premium的sqlite資料庫中插入任意字元串,竟然也能插入
⑵ 如何將android時間戳轉換成時間 android怎麼把時間戳轉換成小時
mysql資料庫的日期欄位類型建議為varchar或者char,存入時間戳。 取出的時候,將時間戳轉換為你需要的時間格式就好。 例: 假設取出值為$time echo date('Y-m-d H:i:s',$time); 你就會看到:2011-11-23 17:42:43的時間格式
⑶ android 時間格式有哪些
* 獲取現在時間
*
* @return 返回時間類型 yyyy-MM-dd HH:mm:ss
*/
public static Date getNowDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
ParsePosition pos = new ParsePosition(8);
Date currentTime_2 = formatter.parse(dateString, pos);
return currentTime_2;
⑷ android開發,long型時間怎麼取出對應的年月日
long類型的時間說明獲取得到的是時間戳,具體轉換可參考以下代碼
java">//mill為你龍類型的時間戳
Datedate=newDate(mill);
Stringstrs="";
try{
//yyyy表示年MM表示月dd表示日
//yyyy-MM-dd是日期的格式,比如2015-12-12如果你要得到2015年12月12日就換成yyyy年MM月dd日
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
//進行格式化
strs=sdf.format(date);
System.out.println(strs);
}catch(Exceptione){
e.printStackTrace();
}
⑸ android studio 時間戳s是string類型的嗎
可以存儲為String類型,通常時間戳不是String類型,而是long類型
Android Studio獲取本地的時間戳通過下面方法:System.currentTimeMillis();
獲取伺服器的時間戳,通常返回的是一個字元串類型,即String,可以將其轉換long類型使用對於方法:Long.parseLong(Strings)
⑹ Android中怎麼排序日期和時間
時間排序,方法很多,以下提供幾種常用的方法。
轉化成long類型進行對比。
通過Collections.sort()方法進行排序。
【原理】
主要是通過把時間轉化成一些可以對比的數據類型進行排序對比。
【詳細方式或原理】
轉化成long類型進行對比
轉化代碼:
StringsDt="08/31/200621:08:00";
SimpleDateFormatsdf=newSimpleDateFormat("MM/dd/yyyyHH:mm:ss");
Datedt2=sdf.parse(sDt);
//繼續轉換得到秒數的long型
longlTime=dt2.getTime()/1000;
把需要對比的時間轉化成long類型進行對比。
2.通過Collections.sort()方法進行排序
Collections.sort()是java提供的官方排序方式。適合多類型排序。
詳細的對比代碼如下:
一般情況下要重寫下Comparator 介面。
importjava.util.Comparator;
{
@Override
publicintcompare(Objectlhs,Objectrhs){
//時間對比
numa=(num)lhs;
numb=(num)rhs;
return(b.getCount()-a.getCount());
}
}
然後在排序的地方進行使用
Comparatorcomp=newSortComparator();
Collections.sort(list,comp);
【最後】
如果數據類型復雜推薦使用方法二,如果類型簡單推薦使用方法一。
⑺ android sqlite cursor怎麼得到date類型 csdn
在android的sqlite中存取DATETIME類型的方法。
創建表時:
String sql="create table tb3(idINTEGER PRIMARY KEY,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, weight DOUBLE)";
timestamp欄位預設值是當前時間(基於GMT而不是local time)。這問題導致了記錄的時間跟本地實際時間有幾個小時的差距,費了我好大工夫才找到解決方法: 存的時候不變,取的時候根據自己所在時區調整時間。這是sqlite中的一個函數datetime所做的工作。
讀取時的方法:
[java] view plainprint?
<span style="font-size:12px;">Cursor cursor = db.rawQuery("selectweight,datetime(timestamp,'localtime') from tb3",null);
String myDate =cursor.getString(cursor.getColumnIndex("datetime(timestamp,'localtime')"));
SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = format.parse(myDate);</span>
插入數據時,由於timestamp和id能自動生成,只需插入體重數據:
ContentValues values=newContentValues();
double nowWeight = Double.parseDouble(weightStr);
values.put("weight", nowWeight);
db = sqlHelper.getWritableDatabase();
db.insert("tb3", null,values);
db.close();可以看看安卓巴士:http://www.apkbus.com/thread-463768-1-1.html
⑻ 如何在android下採用相對時間,實現超時等待的功能
一、函數功能說明
pthread_cond_timedwait 等待一個條件變數,或者超時就會返回
POSIX有兩種時鍾類型
1、CLOCK_REALTIME: 系統范圍內的實時時鍾,是個軟體時鍾,可以通過命令等方式修改該系統時間.
2、CLOCK_MONOTONIC:系統起機時到現在的時間,不能被設置和修改.
pthread_cond_timedwait()在沒有設置條件變數屬性的時候,默認用的是CLOCK_REALTIME軟體時間,
因此在極端情況下會出現實際等待的時間與設置的超時時間不同。
所以,對於linux的超時等待功能,最好是使用CLOCK_MONOTONIC進行實現,並且通過pthread_condattr_setclock實現。
而對於android系統而言,是不支持pthread_condattr_setclock,通過驗證可以採用函數pthread_cond_timedwait_monotonic實現。
下面直接給出代碼的實現功能。
二、超時等待功能
[cpp] view plain
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <sys/time.h>
#include <sys/times.h>
#include <unistd.h>
#include <time.h>
static pthread_mutex_t s_mut = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t s_cond = PTHREAD_COND_INITIALIZER;
void PthreadAttr_Init(void);
unsigned long long getSysTime(void);
void waitTimeout(void);
void PthreadAttr_Init(void)
{
#if defined(ANDROID)
#else
pthread_condattr_t cattr;
int iRet = -1;
iRet = pthread_condattr_init(&cattr);
if (iRet != 0)
{
return;
}
pthread_mutex_init(&s_mut, NULL);
pthread_condattr_setclock(&cattr, CLOCK_MONOTONIC);
pthread_cond_init(&s_cond, &cattr);
pthread_condattr_destroy(&cattr);
#endif
return;
}
void waitTimeout(void)
{
unsigned long long ullbefore = getSysTime();
unsigned long long ullafter = 0;
#if defined(ANDROID)
#if defined(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC) // 支持ANDROID下NDK的編譯,採用相對時間
struct timespec outtime;
memset(&outtime, 0x00, sizeof(struct timespec ));
clock_gettime(CLOCK_MONOTONIC, &outtime);
outtime.tv_sec += 2;
pthread_mutex_lock(&s_mut);
pthread_cond_timedwait_monotonic(&s_cond,&s_mut, &outtime);
pthread_mutex_unlock(&s_mut);
ullafter = getSysTime();
printf("####01 interval[%lld] ms\n", ullafter - ullbefore);
#else //支持ANDROID下NDK的編譯,採用絕對時間
struct timeval now;
struct itmespec outtime;
gettimeofday(&now, NULL);
outtime.tv_sec = now..tv_sec + 3;
outtime.tv_nsec = now.tv_usec * 1000;
pthread_mutex_lock(&s_mut);
pthread_cond_timedwait(&s_cond, &s_mut, &outtime);
pthread_mutex_unlock(&s_mut);
ullafter = getSysTime();
printf("####02 interval[%lld] ms\n", ullafter - ullbefore);
#endif
#else // 支持LINUX下的編譯,採用絕對時間
struct timespec outtime;
memset(&outtime, 0x00, sizeof(struct timespec ));
clock_gettime(CLOCK_MONOTONIC, &outtime);
outtime.tv_sec += 4;
pthread_mutex_lock(&s_mut);
pthread_cond_timedwait(&s_cond, &s_mut, &outtime);
pthread_mutex_unlock(&s_mut);
ullafter = getSysTime();
printf("####03 interval[%lld] ms\n", ullafter - ullbefore);
#endif
return;
}
unsigned long long getSysTime(void)
{
unsigned long long milliseconds = 0;
struct tms t_tmsTime;
clock_t t_CurTime;
static int s_clks_per_sec = 0;
if (s_clks_per_sec == 0)
{
s_clks_per_sec = sysconf(_SC_CLK_TCK);
}
if (s_clks_per_sec == 0)
{
return 0;
}
t_CurTime = times(&t_tmsTime);
if (1000 % s_clks_per_sec == 0)
{
milliseconds = (1000 /s_clks_per_sec)*(unsigned long long )t_CurTime;//換算成毫秒
}
else
{
milliseconds = 1000 * (unsigned long long )t_CurTime/s_clks_per_sec;//換算成毫秒
}
return milliseconds;
}
int main(void)
{
PthreadAttr_Init();
waitTimeout();
return 0;
}
編譯命令:
gcc test_ptthrad_conf_timewait_monotonic.c -o test_ptthrad_conf_timewait_monotonic -lpthread -lrt
linux下的測試結果:
####03 interval[4010] ms