返回顶部

一缕半夏微光

温柔半两,从容一生

导航

通过Java给MongoDB数据库集合格式化时间

需要批量将MongoDB数据库的集合的时间格式化

即:将10/Nov/2016:00:01:02 +0800转化为2016-11-10 00:01:02

效果图:

代码如下:

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4 import java.util.Locale;
 5 
 6 import org.bson.Document;
 7 
 8 import com.mongodb.MongoClient;
 9 import com.mongodb.MongoClientOptions;
10 import com.mongodb.ServerAddress;
11 import com.mongodb.client.FindIterable;
12 import com.mongodb.client.MongoCollection;
13 import com.mongodb.client.MongoDatabase;
14 import com.mongodb.client.model.Filters;
15 import com.mongodb.client.result.UpdateResult;
16 
17 public class MongoDB {
18     public static void main(String[] args) throws java.text.ParseException {
19         MongoClientOptions option = MongoClientOptions.builder().connectTimeout(60000).build();
20         MongoClient monGoClient = new MongoClient(new ServerAddress("localhost", 27017), option);
21         // 获取操作数据库
22         MongoDatabase db = monGoClient.getDatabase("result");//result为数据库名
23         // 获取集合。后面的操作,大部分都是基于集合操作
24         MongoCollection<Document> contections = db.getCollection("result");//此result为数据库里面的集合名
25         System.out.println("MongoDB数据库连接成功");
26         // 查询集合中的所有数据
27         FindIterable<Document> result = contections.find();
28         for (Document document : result) {
29             String dataTime = document.getString("Date");//Date为result集合里面的字段名
30             System.out.println(dataTime);
31             String DataTime = parseDate(dataTime);
32             System.out.println(DataTime);
33             UpdateResult update = contections.updateOne(Filters.eq("Date", dataTime),
34                     new Document("$set", new Document("Date", DataTime)));
35         }
36         System.out.println("精细化操作完成");
37     }
38 
39     // 改变时间的格式
40     public static String parseDate(String dateStr) throws java.text.ParseException {
41 
42         SimpleDateFormat input_date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
43         SimpleDateFormat output_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
44         String finalDate = "";
45         try {
46             Date parse_date = input_date.parse(dateStr);
47             finalDate = output_date.format(parse_date);
48         } catch (ParseException e) {
49             e.printStackTrace();
50         }
51 
52         return finalDate;
53     }
54 }

 

posted on 2021-11-05 11:45  一缕半夏微光  阅读(1041)  评论(0编辑  收藏  举报