您好请帮助我,我已经经历了很多问题,但没有得到解决方案。 代码
String localDate1="Miércoles, 04 Octubre 2017 12:00 PM";
Locale spanishLocale=new Locale("es", "ES");
SimpleDateFormat spanishLocale1=new SimpleDateFormat(getString(R.string.jom_events_date_input_format_12_hrs),spanishLocale);
String dateInSpanish=spanishLocale1.parse(localDate1).toString();
Log.v("@@@WWW","in Spanish: "+dateInSpanish);
错误
java.text.ParseException: Unparseable date: "Miércoles, 04 Octubre 2017 12:00 PM" (at offset 33)
答案 0 :(得分:3)
仅供记录:
幸运的是,您发布了错误消息,指出偏移量33(即输入中“PM”的位置)。所以我们可以说:
您的问题与设备相关的本地化数据(或依赖于操作系统)有关,此处是AM / PM的西班牙语表示的具体数据。在旧版本的CLDR-unicode存储库(行业标准作为许多Java,C#或Android发行版的公共源)中,使用了数据“AM”和“PM”,但在较新版本中,它使用“a.m”。或“p.m。”为西班牙语。
因此,如果您要解析的输入(包含“PM”)与您拥有的真实i18n数据不匹配,我建议使用实用的解决方案字符串预处理:
String input = "Miércoles, 04 Octubre 2017 12:00 PM";
input = input.replace("PM", "p. m.");
// now parse your input with Spanish locale and the appropriate pattern
答案 1 :(得分:0)
请检查此行的拼写
var express = require("express");
var app = express();
var port = 3000;
var io = require('socket.io-client/dist/socket.io');
var socket = io.connect('http://socket.coincap.io', {transports: ['websocket']});
socket.on('trades', function(tradeMsg) {
console.log("worked");
});
app.listen(port, () => {
console.log("Server listening on port " + port);
});
更改 10月而不是 Octubre ,并检查此Miércoles
答案 2 :(得分:-1)
您可以使用此代码作为参考::
此代码转换:--- miércoles,04 octubre 2017 12:00 AM 至 2017年10月4日00:00:00 IST 2017
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class test {
public static void main(String[] args) throws IOException, ParseException {
//Wednesday, October 4, 2017
String dateInString = "4-Oct-2017";
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date = formatter.parse(dateInString);
SimpleDateFormat formato = new SimpleDateFormat("EEEE, dd MMMM yyyy hh:mm aaaa", new Locale("es", "ES"));
String fecha = formato.format(date);
System.out.println(fecha);
String localDate1 = fecha;
Locale spanishLocale = new Locale("es", "ES");
String pattern = "E, dd MMMM yyyy hh:mm aaaa";
SimpleDateFormat spanishLocale1 = new SimpleDateFormat(pattern, spanishLocale);
String dateInSpanish = spanishLocale1.parse(localDate1).toString();
System.out.println(dateInSpanish);
}
}