50,528
社区成员
发帖
与我相关
我的任务
分享
@Slf4j
@Data
@RestController
@RequestMapping("api/day-active")
public class DayActiveController {
@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;
/**
* @author leon
* 每日活跃用户API
*/
@RequestMapping("count")
@SneakyThrows
public String dayActive(String word) {
// 构建查询器
QueryBuilder queryBuilder = QueryBuilders
.matchQuery("time", word);
// 构建本地搜索器
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(queryBuilder)
.build();
// 查询数量
long count = elasticsearchRestTemplate.count(searchQuery, Server.class);
log.info("检索到一共 {} 个符和条件的文档数据", count);
File writeFile = new File("D:\\work\\json.csv");
BufferedWriter writeText = new BufferedWriter(new FileWriter(writeFile));
//获取当前的日期时间
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH);
System.out.println(month+1);
for (int i = 1; i < 31; i++) {
writeText.write((month+1)+"月"+i+"日"+',');
}
writeText.newLine();
//输出查询后符合条件的日活数
writeText.write(String.valueOf(count));
System.out.println("输出成功");
writeText.flush();
writeText.close();
System.out.println(count);
return JacksonUtil.build("检索到一共" + count + "个符和条件的文档数据");
}
}
问题描述:目的是做日活,所以想根据用户的登陆时间来作为统计当日的活跃数,但是最开始插入es中的csv表就是科学计数法或者长长的一串数字,导致我现在取值的时候也是一串数字或科学计数法的字。请问有大神能解决我这个问题吗?
是科学计数法的话, 你需要先转换成字符串 ,然后在转换成时间
是个时间戳的话 直接用new Date(时间戳);就行了 like this
public class ElevenTest {
public static void main(String[] args) {
long currentTimeMillis = System.currentTimeMillis();
System.out.println(currentTimeMillis);
System.out.println(new Date(currentTimeMillis).toLocaleString());
/**
* 1631602285742
* 2021-9-14 14:51:25
*/
}
}