在有Timestamp属性的对象转json时 最后出来的时间会减小8小时,是因为变成了0时区,需要将隐式转换中添加设置本地时区
import org.json4s.{DefaultFormats, Formats}
import org.json4s.jackson.Serialization.write
object Json4sDemo {
// 需要添加隐式转换
// implicit val formats: AnyRef with Formats = Serialization.formats(NoTypeHints)
// 转换时 设置时区
implicit val formats: AnyRef with Formats = new DefaultFormats {
override def dateFormatter = {
val f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S")
f.setTimeZone(TimeZone.getTimeZone("GMT+8"))
def main(args: Array[String]): Unit = {
val timestamp = Timestamp.valueOf("2019-05-16 12:02:45.4")
val user1 = User(1, name = "李明", 47, timestamp)
val user2 = User(2, name = "张杰", 43, timestamp)
val user3 = User(3, name = "王伟", 54, timestamp)
val user4 = User(4, name = "刘安", 24, timestamp)
val users = List[User](user1, user2, user3, user4)
// 由scala 对象转换为 Json字符串
val str = write(user1)
println(str)
val sts = write(users)
println(sts)
case class User(id: Int, name: String, age: Int, time: Timestamp)
2019独角兽企业重金招聘Python工程师标准>>> ...
class DateEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
elif isinstanc...
Json与Java Bean互相转换时,Bean中的Timestamp字段是无法直接处理的,需要实现两个转换器。
DateJsonValueProcessor的作用是Bean转换为Json时将Timepstamp转换为指定的时间格式。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
impo...
假设您使用的是Java语言中的MongoDB驱动程序(如Mongo Java Driver),您可以使用ObjectId类将日期转换为MongoDB的ObjectId。
以下是将给定日期转换为ObjectId的Java代码示例:
import org.bson.types.ObjectId;
// 假设给定的JSON是字符串类型
String jsonString = "{\"date\":1673947550000,\"timestamp\":1673947550}";
// 将JSON字符串解析为一个JSON对象
JSONObject jsonObject = new JSONObject(jsonString);
// 从JSON对象中获取日期
long date = jsonObject.getLong("date");
// 将日期转换为ObjectId
ObjectId objectId = new ObjectId(date);
// 打印ObjectId
System.out.println(objectId.toHexString());
请注意,这里假设您已经包含了所需的库(例如:org.json.JSONObject,org.bson.types.ObjectId等),并且已经建立了MongoDB的连接。