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