通過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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM